【问题标题】:MasterDetail BindingMasterDetail绑定
【发布时间】:2026-02-01 21:15:01
【问题描述】:

我有两个网格,我用 1 个网格绑定一个集合,在那个集合中我有子集合,我想将子集合绑定到另一个网格,我在其中使用组合框

<dxg:GridColumn Header="User Name" Width="200" FieldName="" AllowEditing="False" VisibleIndex="0" >
                <dxg:GridColumn.CellTemplate>
                    <DataTemplate>
                        <dxe:ComboBoxEdit ItemsSource="{Binding ElementName=WorkflowTeamGrid, Path=SelectedItem.SecTeamUserCollection}"  Name="PART_Editor" IsTextEditable="False" HorizontalAlignment="Left" Width="190"
                                              DisplayMember="UserRoleKey"  ></dxe:ComboBoxEdit>
                    </DataTemplate>
                </dxg:GridColumn.CellTemplate>
            </dxg:GridColumn>

但它没有显示任何数据,我也试过了

<dxg:GridControl ItemsSource="{Binding ElementName=WorkflowTeamGrid, Path=SelectedItem.SecTeamUserCollection}"  x:Name="WorkflowTeamUserGrid"  Height="Auto" VerticalAlignment="Top" Width="Auto"
                                                            ScrollViewer.VerticalScrollBarVisibility="Auto" DefaultSorting="false" Grid.Row="1">
        <dxg:GridControl.View>
            <dxg:TableView Name="tableViewTeamUserWorkFlow" ShowGroupPanel="False" />
        </dxg:GridControl.View>
        <dxg:GridControl.Columns>

            <dxg:GridColumn Header="User Name" Width="200" FieldName="UserRoleKey" AllowEditing="False" VisibleIndex="0" >
                <dxg:GridColumn.CellTemplate>
                    <DataTemplate>
                        <dxe:ComboBoxEdit ItemsSource="{Binding ElementName=WorkflowTeamGrid, Path=SelectedItem.SecTeamUserCollection}"  Name="PART_Editor" IsTextEditable="False" HorizontalAlignment="Left" Width="190"
                                              DisplayMember="UserRoleKey"  ></dxe:ComboBoxEdit>
                    </DataTemplate>
                </dxg:GridColumn.CellTemplate>
            </dxg:GridColumn>

但由于 Grid 的 Itemsource 属性,它显示的次数与子集合的计数一样多,任何 1 都可以帮助我在不设置 ItemSource 属性的情况下完成此操作

【问题讨论】:

  • 如果我理解你是正确的,你有一个包含一些条目的集合,每个条目都有一个子集合。并且您想在第一个网格中显示所选条目的子项。对吗?
  • 是的,我有一个带有子集合的集合

标签: wpf wpfdatagrid master-detail


【解决方案1】:

由于您在网格列中绑定,因此您可以简单地绑定到当前项而不是网格的选定项

例如

<dxe:ComboBoxEdit ItemsSource="{Binding SecTeamUserCollection}" Name="PART_Editor" IsTextEditable="False" HorizontalAlignment="Left" Width="190" DisplayMember="UserRoleKey"></dxe:ComboBoxEdit>

这会将单个组合绑定到相应的集合,而不是将每个组合绑定到所选项目的子集合

如果这不能直接工作,那么您可能必须使用可用于 dxg: 命名空间的模板列。

【讨论】: