-
Notifications
You must be signed in to change notification settings - Fork 0
/
Form1.cs
135 lines (124 loc) · 3.29 KB
/
Form1.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
using DevExpress.XtraGrid.Views.Grid;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestMasterDetailSelection
{
public partial class Form1 : DevExpress.XtraEditors.XtraForm
{
public Form1()
{
InitializeComponent();
gridControl1.DataSource = GetData(10, 10);
new MasterDetailSelectionHelper(gridView1);
}
BindingList<Customer> GetData(int custCount, int orderCount)
{
BindingList<Customer> custList = new BindingList<Customer>();
Random r = new Random();
for (int i = 0; i < custCount; i++)
{
Customer cust = custList.AddNew();
cust.ID = i;
cust.Name = "Name" + i;
for (int j = 0; j < orderCount; j++)
{
cust.Orders.Add(new Order() { ID = j });
int productCount = r.Next(10);
for (int k = 0; k < productCount; k++)
{
cust.Orders[j].Products.Add(new Product() { ID = k, Name = "Product" + k, Price = r.Next(100) });
}
}
}
return custList;
}
private void gridControl1_ViewRegistered(object sender, DevExpress.XtraGrid.ViewOperationEventArgs e)
{
new MasterDetailSelectionHelper(e.View as GridView);
}
}
public class Customer
{
public Customer()
{
_Orders = new BindingList<Order>();
}
int _ID = 0;
string _Name = "";
BindingList<Order> _Orders;
public int ID
{
get { return _ID; }
set { _ID = value; }
}
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public BindingList<Order> Orders
{
get { return _Orders; }
set { _Orders = value; }
}
}
public class Order
{
public Order()
{
_Products = new BindingList<Product>();
}
int _ID = 0;
BindingList<Product> _Products;
public int ID
{
get { return _ID; }
set { _ID = value; }
}
public int Sum
{
get
{
int sum = 0;
foreach(Product product in _Products)
{
sum += product.Price;
}
return sum;
}
}
public BindingList<Product> Products
{
get { return _Products; }
set { _Products = value; }
}
}
public class Product
{
public Product() { }
int _ID = 0;
string _Name = "";
int _Price = 0;
public int ID
{
get { return _ID; }
set { _ID = value; }
}
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public int Price
{
get { return _Price; }
set { _Price = value; }
}
}
}