Skip to content

Commit 747f047

Browse files
ES-975464 - Resolve the ReadMe issue in this sample repository
1 parent daad524 commit 747f047

File tree

1 file changed

+149
-2
lines changed

1 file changed

+149
-2
lines changed

README.md

Lines changed: 149 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,149 @@
1-
# How to load data on demand using events in wpf treegrid?
2-
This example illustrates how to load data on demand using events in wpf treegrid
1+
# How to load data on demand using events in WPF TreeGrid
2+
3+
This example illustrates how to load data on demand using events in [WPF TreeGrid](https://www.syncfusion.com/wpf-controls/treegrid) (SfTreeGrid).
4+
5+
`SfTreeGrid` supports to load the data in on-demand through [SfTreeGrid.RequestTreeItems](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.TreeGrid.SfTreeGrid.html#Syncfusion_UI_Xaml_TreeGrid_SfTreeGrid_RequestTreeItems) event. `RequestTreeItems` event is triggered at the time of loading and when user expand any node at runtime. SfTreeGrid gets the root and leaf nodes through this event handler.
6+
7+
`TreeGridRequestTreeItemsEventArgs.ParentItem` denotes the data object looking for its child nodes. If it is null, it denotes SfTreeGrid requesting root nodes.
8+
9+
In the below example SfTreeGrid is populated through `SfTreeGrid.RequestTreeItems` instead of setting [SfTreeGrid.ItemsSource](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.TreeGrid.SfTreeGrid.html#Syncfusion_UI_Xaml_TreeGrid_SfTreeGrid_ItemsSource).
10+
11+
``` csharp
12+
ViewModel viewModel = new ViewModel();
13+
treeGrid.RequestTreeItems += TreeGrid_RequestTreeItems;
14+
15+
private void TreeGrid_RequestTreeItems(object sender, TreeGridRequestTreeItemsEventArgs args)
16+
{
17+
18+
if (args.ParentItem == null)
19+
{
20+
args.ChildItems = viewModel.Employees.Where(x => x.ReportsTo == -1);
21+
}
22+
23+
else
24+
{
25+
EmployeeInfo employee = args.ParentItem as EmployeeInfo;
26+
27+
if (employee != null)
28+
{
29+
args.ChildItems = viewModel.GetEmployees().Where(x => x.ReportsTo == employee.ID);
30+
}
31+
}
32+
}
33+
```
34+
35+
``` csharp
36+
public class EmployeeInfo
37+
{
38+
int _id;
39+
string _firstName;
40+
string _lastName;
41+
private string _title;
42+
double? _salary;
43+
int _reportsTo;
44+
45+
public string FirstName
46+
{
47+
get { return _firstName; }
48+
set { _firstName = value; }
49+
}
50+
51+
public string LastName
52+
{
53+
get { return _lastName; }
54+
set { _lastName = value; }
55+
}
56+
57+
public int ID
58+
{
59+
get { return _id; }
60+
set { _id = value; }
61+
}
62+
63+
public string Title
64+
{
65+
get { return _title; }
66+
set { _title = value; }
67+
}
68+
69+
public double? Salary
70+
{
71+
get { return _salary; }
72+
set { _salary = value; }
73+
}
74+
75+
public int ReportsTo
76+
{
77+
get { return _reportsTo; }
78+
set { _reportsTo = value; }
79+
}
80+
}
81+
```
82+
83+
``` csharp
84+
public class ViewModel
85+
{
86+
public ViewModel()
87+
{
88+
this.Employees = this.GetEmployees();
89+
}
90+
private ObservableCollection<EmployeeInfo> _employees;
91+
92+
public ObservableCollection<EmployeeInfo> Employees
93+
{
94+
get { return _employees; }
95+
set { _employees = value; }
96+
}
97+
98+
public ObservableCollection<EmployeeInfo> GetEmployees()
99+
{
100+
ObservableCollection<EmployeeInfo> employeeDetails = new ObservableCollection<EmployeeInfo>();
101+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Ferando", LastName = "Joseph", Title = "Management", Salary = 2000000, ReportsTo = -1, ID = 2 });
102+
employeeDetails.Add(new EmployeeInfo() { FirstName = "John", LastName = "Adams", Title = "Accounts", Salary = 2000000, ReportsTo = -1, ID = 3 });
103+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Thomas", LastName = "Jefferson", Title = "Sales", Salary = 300000, ReportsTo = -1, ID = 4 });
104+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Andrew", LastName = "Madison", Title = "Marketing", Salary = 4000000, ReportsTo = -1, ID = 5 });
105+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Ulysses", LastName = "Pierce", Title = "HumanResource", Salary = 1500000, ReportsTo = -1, ID = 6 });
106+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Jimmy", LastName = "Harrison", Title = "Purchasing", Salary = 200000, ReportsTo = -1, ID = 7 });
107+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Ronald", LastName = "Fillmore", Title = "Production", Salary = 2800000, ReportsTo = -1, ID = 8 });
108+
//Management
109+
110+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Andrew", LastName = "Fuller", ID = 9, Salary = 1200000, ReportsTo = 2, Title = "Vice President" });
111+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Janet", LastName = "Leverling", ID = 10, Salary = 1000000, ReportsTo = 2, Title = "GM" });
112+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Steven", LastName = "Buchanan", ID = 11, Salary = 900000, ReportsTo = 2, Title = "Manager" });
113+
114+
//Accounts
115+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Nancy", LastName = "Davolio", ID = 12, Salary = 850000, ReportsTo = 3, Title = "Accounts Manager" });
116+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Margaret", LastName = "Peacock", ID = 13, Salary = 700000, ReportsTo = 3, Title = "Accountant" });
117+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Michael", LastName = "Suyama", ID = 14, Salary = 700000, ReportsTo = 3, Title = "Accountant" });
118+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Robert", LastName = "King", ID = 15, Salary = 650000, ReportsTo = 3, Title = "Accountant" });
119+
120+
//Sales
121+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Laura", LastName = "Callahan", ID = 16, Salary = 900000, ReportsTo = 4, Title = "Sales Manager" });
122+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Anne", LastName = "Dodsworth", ID = 17, Salary = 800000, ReportsTo = 4, Title = "Sales Representative" });
123+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Albert", LastName = "Hellstern", ID = 18, Salary = 750000, ReportsTo = 4, Title = "Sales Representative" });
124+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Tim", LastName = "Smith", ID = 19, Salary = 700000, ReportsTo = 4, Title = "Sales Representative" });
125+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Justin", LastName = "Brid", ID = 20, Salary = 700000, ReportsTo = 4, Title = "Sales Representative" });
126+
127+
//Back Office
128+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Caroline", LastName = "Patterson", ID = 21, Salary = 800000, ReportsTo = 5, Title = "Receptionist" });
129+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Xavier", LastName = "Martin", ID = 22, Salary = 700000, ReportsTo = 5, Title = "Mail Clerk" });
130+
131+
//HR
132+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Laurent", LastName = "Pereira", ID = 23, Salary = 900000, ReportsTo = 6, Title = "HR Manager" });
133+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Syed", LastName = "Abbas", ID = 24, Salary = 650000, ReportsTo = 6, Title = "HR Assistant" });
134+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Amy", LastName = "Alberts", ID = 25, Salary = 650000, ReportsTo = 6, Title = "HR Assistant" });
135+
136+
//Purchasing
137+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Pamela", LastName = "Ansman-Wolfe", ID = 26, Salary = 600000, ReportsTo = 7, Title = "Purchase Manager" });
138+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Michael", LastName = "Blythe", ID = 27, Salary = 550000, ReportsTo = 7, Title = "Store Keeper" });
139+
employeeDetails.Add(new EmployeeInfo() { FirstName = "David", LastName = "Campbell", ID = 28, Salary = 450000, ReportsTo = 7, Title = "Store Keeper" });
140+
141+
//Production
142+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Jillian", LastName = "Carson", ID = 29, Salary = 600000, ReportsTo = 8, Title = "Production Manager" });
143+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Shu", LastName = "Ito", ID = 30, Salary = 550000, ReportsTo = 8, Title = "Production Engineer" });
144+
employeeDetails.Add(new EmployeeInfo() { FirstName = "Stephen", LastName = "Jiang", ID = 31, Salary = 450000, ReportsTo = 8, Title = "Production Engineer" });
145+
146+
return employeeDetails;
147+
}
148+
}
149+
```

0 commit comments

Comments
 (0)