注:本条目为“分享您的知识,问答风格”。下面我回答我自己的问题。
不幸的是,在带有主细节的DevExpress网格中,SelectedItem
不能在子网格上工作.
如何计算在子网格中选择的项?
发布于 2016-04-25 20:32:00
这已经被取代了:-
请注意,这种方法是从版本15.1开始的过时的,在该版本中,可以直接绑定主网格和详细网格的选择。从该版本开始,按照主细节网格-添加绑定选择和导航属性的功能。中的描述,直接绑定CurrentItem/SelectedItem/SelectedItems属性。 主细节网格的以下属性现在支持绑定:
SelectedItem
__,CurrentItem
__,SelectedItems
__.指定DataControlDetailDescriptor.ParentPath
属性或处理DataControlDetailDescriptor.CustomGetParent
事件,以启用从ViewModel到网格的绑定。
发布于 2015-05-21 09:53:34
注:本条目为“分享您的知识,问答风格”。我回答我自己的问题,上面。
在与此进行了一段时间的斗争之后,我发现解决这个问题的最佳方法是创建您自己的附加属性,如下所示:
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>
请DevExpress,让我们容易,这应该只是工作!
https://stackoverflow.com/questions/30370322
复制相似问题