DetailDescriptorSelector Class
Enables you to select which detail descriptor to use in data dependent details.
Namespace: DevExpress.Xpf.Grid
Assembly: DevExpress.Xpf.Grid.v19.2.Core.dll
Declaration
Remarks
The GridControl allows you to define a simple detail selection logic in XAML (using the DetailDescriptorSelector object) in the following way:
Pass the DetailDescriptorSelector object to the GridControl.DetailDescriptor property.
<dxg:GridControl ItemsSource="{x:Static local:ViewModel.Employees}"> <dxg:GridControl.DetailDescriptor> <dxg:DetailDescriptorSelector> <!-- DetailDescriptorSelector --> </dxg:DetailDescriptorSelector> </dxg:GridControl.DetailDescriptor> </dxg:GridControl>
Note
The DetailDescriptorSelector can be bound only to a corresponding master row object’s properties.
The DetailDescriptorSelector selects a detail descriptor when a corresponding trigger condition is met.
The code sample below demonstrates how to provide a detail descriptor that is selected for master rows that meet specific criteria (
Employees.Count == 0
in this example).<dxg:GridControl ItemsSource="{x:Static local:ViewModel.Employees}"> <dxg:GridControl.DetailDescriptor> <dxg:DetailDescriptorSelector> <!-- A detail descriptor selected for master rows, whose Employees.Count value is equal to 0 --> <dxg:DetailDescriptorTrigger Binding="{Binding Path=Employees.Count}" Value="0"> <dxg:DataControlDetailDescriptor ItemsSourcePath="Customers"> <dxg:GridControl> <!-- The detail GridControl settings --> </dxg:GridControl> </dxg:DataControlDetailDescriptor> </dxg:DetailDescriptorTrigger> </dxg:DetailDescriptorSelector> </dxg:GridControl.DetailDescriptor> <!-- The master GridControl settings --> </dxg:GridControl>
To provide a default detail descriptor, pass the DetailDescriptorSelector with the configured detail GridControl to the DetailDescriptorSelector.DefaultValue property.
<dxg:GridControl ItemsSource="{x:Static local:ViewModel.Employees}"> <dxg:GridControl.DetailDescriptor> <dxg:DetailDescriptorSelector> <!-- The default detail descriptor --> <dxg:DetailDescriptorSelector.DefaultValue> <dxg:DataControlDetailDescriptor ItemsSourcePath="Employees"> <dxg:GridControl> <!-- The default detail GridControl settings --> </dxg:GridControl> </dxg:DataControlDetailDescriptor> </dxg:DetailDescriptorSelector.DefaultValue> <!-- A detail descriptor selected for master rows, whose Employees.Count value is equal to 0 --> <dxg:DetailDescriptorTrigger Binding="{Binding Path=Employees.Count}" Value="0"> <dxg:DataControlDetailDescriptor ItemsSourcePath="Customers"> <dxg:GridControl> <!-- The detail GridControl settings --> </dxg:GridControl> </dxg:DataControlDetailDescriptor> </dxg:DetailDescriptorTrigger> </dxg:DetailDescriptorSelector> </dxg:GridControl.DetailDescriptor> <!-- The master GridControl settings --> </dxg:GridControl>
Related GitHub Examples
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the DetailDescriptorSelector class.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.