Примечание: Данная запись относится к типу "Поделитесь своими знаниями, Q & A Style". Я отвечу на свой вопрос, выше.
После борьбы с этим на некоторое время, я обнаружил, что лучший способ решить это, чтобы создать свой собственный вложенное свойство, согласно этим инструкциям:
https://www.devexpress.com/Support/Center/Example/Details/E4402
Ниже приведен пример кода, который показывает, как это работает. Этот подход зависит от версии библиотеки DevExpress в соответствии с приведенной выше ссылкой.
<grid:GridControl x:Name="BasketSearchBasketGrid" ItemsSource="{Binding Path=Baskets}" ToolTip="Double click to show details.">
<grid:GridControl.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding Path=SelectRowCmd}"/>
</grid:GridControl.InputBindings>
<grid:GridControl.View>
<grid:TableView x:Name="view" AllowPerPixelScrolling="True" AutoWidth="True" NewItemRowPosition="None"
DetailHeaderContent="Search Results"
NavigationStyle="Row"
ShowFixedTotalSummary="False"
ShowGroupPanel="True"
ShowGroupedColumns="True"
ShowAutoFilterRow="false"
FadeSelectionOnLostFocus="False"
ShowIndicator="False"
BestFitMode="AllRows">
<i:Interaction.Behaviors>
<!-- We could use SelectedRow, however, to keep things consistent with the way child rows work, use this
instead. -->
<devExpressBehaviour:MasterFocusedRowBehavior FocusedRow="{Binding SelectedBasket, Mode=TwoWay}" />
</i:Interaction.Behaviors>
</grid:TableView>
</grid:GridControl.View>
<grid:GridControl.Columns>
<grid:GridColumn Header="Basket Name" FieldName="BasketName" MinWidth="60"/>
<grid:GridColumn Header="BasketStyle" FieldName="BasketStyle" MinWidth="40"/>
</grid:GridControl.Columns>
<grid:GridControl.DetailDescriptor>
<dxg:DataControlDetailDescriptor ItemsSourcePath="Orders" ShowHeader="False">
<grid:GridControl x:Name="BasketSearchOrderGrid" Tag="orderDetails"
>
<grid:GridControl.Columns>
<grid:GridColumn Header="Side" FieldName="Side" MinWidth="20"/>
<!-- More columns here -->
</grid:GridControl.Columns>
<grid:GridControl.View>
<dxg:TableView ShowGroupPanel="False">
<i:Interaction.Behaviors>
<!-- DevExpress does not support SelectedRow on a child grid. Use this custom behavior instead. -->
<devExpressBehaviour:DetailFocusedRowBehavior FocusedRow="{Binding SelectedOrder, Mode=TwoWay}" />
</i:Interaction.Behaviors>
</dxg:TableView>
</grid:GridControl.View>
</grid:GridControl>
</dxg:DataControlDetailDescriptor>
</grid:GridControl.DetailDescriptor>
</grid:GridControl>
Ключ эти строки, в закладке детской сетки <TableView>
. Они эффективно заменяют неработающий метод отслеживания выбранного элемента (т. Е. SelectedItem
) с прикрепленным свойством, которое действительно работает.
<i:Interaction.Behaviors>
<!-- DevExpress does not support SelectedRow on a child grid. Use this custom behavior instead. -->
<devExpressBehaviour:DetailFocusedRowBehavior FocusedRow="{Binding SelectedOrder, Mode=TwoWay}" />
</i:Interaction.Behaviors>
Please DevExpress, облегчите нам задачу, это должно сработать!