MasterDetail绑定

时间:2014-06-17 13:27:37

标签: wpf wpfdatagrid master-detail

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

<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属性,它显示了子集合的次数,可以通过设置ItemSource属性来帮助我完成此任务

1 个答案:

答案 0 :(得分:0)

由于您在网格列中绑定,因此您只需绑定到当前项而不是选定的网格项

例如

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

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

如果这不能直接使用,那么您可能必须使用可用于dxg:namespace的模板列。