首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用DevExpress主细节网格,如何绑定到子网格中的SelectedItem?

使用DevExpress主细节网格,如何绑定到子网格中的SelectedItem?
EN

Stack Overflow用户
提问于 2015-05-21 09:53:34
回答 2查看 2.6K关注 0票数 2

注:本条目为“分享您的知识,问答风格”。下面我回答我自己的问题。

不幸的是,在带有主细节的DevExpress网格中,SelectedItem不能在子网格上工作.

如何计算在子网格中选择的项?

EN

回答 2

Stack Overflow用户

发布于 2016-04-25 20:32:00

这已经被取代了:-

请注意,这种方法是从版本15.1开始的过时的,在该版本中,可以直接绑定主网格和详细网格的选择。从该版本开始,按照主细节网格-添加绑定选择和导航属性的功能。中的描述,直接绑定CurrentItem/SelectedItem/SelectedItems属性。 主细节网格的以下属性现在支持绑定:SelectedItem__ CurrentItem__ SelectedItems__.指定DataControlDetailDescriptor.ParentPath属性或处理DataControlDetailDescriptor.CustomGetParent事件,以启用从ViewModel到网格的绑定。

票数 1
EN

Stack Overflow用户

发布于 2015-05-21 09:53:34

注:本条目为“分享您的知识,问答风格”。我回答我自己的问题,上面。

在与此进行了一段时间的斗争之后,我发现解决这个问题的最佳方法是创建您自己的附加属性,如下所示:

https://www.devexpress.com/Support/Center/Example/Details/E4402

下面是一些示例代码,说明了它是如何工作的。该方法取决于DevExpress库的版本,如上面的链接所示。

代码语言:javascript
运行
复制
<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)的非工作方法替换为实际工作的附加属性。

代码语言:javascript
运行
复制
<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,让我们容易,这应该只是工作!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30370322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档