Skip to content

Commit bbf366f

Browse files
Update README file
1 parent f01fd8f commit bbf366f

File tree

1 file changed

+59
-6
lines changed

1 file changed

+59
-6
lines changed

Readme.md

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,71 @@
44
[![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183)
55
[![](https://img.shields.io/badge/💬_Leave_Feedback-feecdd?style=flat-square)](#does-this-example-address-your-development-requirementsobjectives)
66
<!-- default badges end -->
7-
<!-- default file list -->
8-
*Files to look at*:
7+
8+
# WPF Accordion Control - Bind to data through the ChildrenSelector property
9+
10+
This example binds the [AccordionControl](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionControl.class) to data using the [AccordionControl.ChildrenSelector](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionControl.ChildrenSelector.property) property.
11+
12+
Refer to the [Data Binding](https://documentation.devexpress.com/WPF/118635/Controls-and-Libraries/Navigation-Controls/Accordion-Control/Data-Binding) topic for more information.
13+
14+
## Implementation details
15+
16+
In this example, the [AccordionControl](https://docs.devexpress.com/WPF/118347/controls-and-libraries/navigation-controls/accordion-control) is bound to a flat list of `Category` objects. Each `Category` stores a collection of `Item` objects in its `Items` property.
17+
18+
To build a hierarchical view from the flat structure, the [AccordionControl](https://docs.devexpress.com/WPF/118347/controls-and-libraries/navigation-controls/accordion-control) uses the [`ChildrenSelector`](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionControl.ChildrenSelector.property) property. This property is set to a custom implementation of the `IChildrenSelector` interface:
19+
20+
```csharp
21+
public class MySelector : IChildrenSelector {
22+
public IEnumerable SelectChildren(object item) {
23+
if (item is Category)
24+
return ((Category)item).Items;
25+
return null;
26+
}
27+
}
28+
```
29+
30+
In XAML, the selector is declared as a static resource and assigned to the [AccordionControl.ChildrenSelector](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionControl.ChildrenSelector.property) property:
31+
32+
```xaml
33+
<local:MySelector x:Key="mySelector" />
34+
35+
<dxa:AccordionControl
36+
ItemsSource="{Binding MyData.Categories}"
37+
ChildrenSelector="{StaticResource mySelector}" />
38+
```
39+
40+
The [AccordionControl](https://docs.devexpress.com/WPF/118347/controls-and-libraries/navigation-controls/accordion-control) uses data templates to display `Category` and `Item` objects:
41+
42+
```xaml
43+
<DataTemplate DataType="{x:Type local:Category}">
44+
<TextBlock Text="{Binding CategoryName}" />
45+
</DataTemplate>
46+
47+
<DataTemplate DataType="{x:Type local:Item}">
48+
<TextBlock Text="{Binding ItemName}" />
49+
</DataTemplate>
50+
```
51+
52+
## Files to Review
953

1054
* [MainWindow.xaml](./CS/ChildrenSelector/MainWindow.xaml) (VB: [MainWindow.xaml](./VB/ChildrenSelector/MainWindow.xaml))
1155
* [ViewModel.cs](./CS/ChildrenSelector/ViewModel.cs) (VB: [ViewModel.vb](./VB/ChildrenSelector/ViewModel.vb))
12-
<!-- default file list end -->
13-
# WPF Accordion Control - Bind to a data source that contains hierarchical data objects of different types
1456

15-
This example demonstrates how to bind the <a href="https://documentation.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionControl.class">AccordionControl</a> to data using the <a href="https://documentation.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionControl.ChildrenSelector.property">AccordionControl.ChildrenSelector</a> property.<br>Refer to the <a href="https://documentation.devexpress.com/WPF/118635/Controls-and-Libraries/Navigation-Controls/Accordion-Control/Data-Binding">Data Binding</a> topic to learn more.
57+
## Documentation
1658

17-
<br/>
59+
- [AccordionControl](https://docs.devexpress.com/WPF/118347/controls-and-libraries/navigation-controls/accordion-control)
60+
- [AccordionItem](https://docs.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionItem)
61+
- [AccordionViewMode](https://docs.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionViewMode)
62+
- [AccordionControl.ChildrenSelector](https://documentation.devexpress.com/WPF/DevExpress.Xpf.Accordion.AccordionControl.ChildrenSelector.property)
63+
- [Data Binding](https://documentation.devexpress.com/WPF/118635/Controls-and-Libraries/Navigation-Controls/Accordion-Control/Data-Binding)
64+
- [MVVM Framework](https://docs.devexpress.com/WPF/15112/mvvm-framework)
1865

66+
## More Examples
67+
- [ WPF Accordion Control - Bind to Hierarchical Data Structure](https://github.com/DevExpress-Examples/wpf-accordion-bind-to-hierarchical-data-structure)
68+
- [WPF MVVM Framework - Use View Models Generated at Compile Time](https://github.com/DevExpress-Examples/wpf-mvvm-framework-view-model-generator)
69+
- [WPF Dock Layout Manager - Bind the View Model Collection with LayoutAdapters](https://github.com/DevExpress-Examples/wpf-docklayoutmanager-bind-view-model-collection-with-layoutadapters)
70+
- [WPF Dock Layout Manager - Bind the View Model Collection with IMVVMDockingProperties](https://github.com/DevExpress-Examples/wpf-docklayoutmanager-bind-view-model-collection-with-IMVVMDockingProperties)
71+
- [WPF Dock Layout Manager - Populate a DockLayoutManager LayoutGroup with the ViewModels Collection](https://github.com/DevExpress-Examples/wpf-docklayoutmanager-display-viewmodels-collection-in-layoutgroup)
1972

2073
<!-- feedback -->
2174
## Does this example address your development requirements/objectives?

0 commit comments

Comments
 (0)