从DataGrid中的表填充ComboBox

时间:2013-03-19 17:11:40

标签: wpf datagrid

我正在尝试做一些我认为非常简单的事情,但目前我完全不知所措。

假设我有两张桌子。一个包含所有者列表(以保持唯一性)。另一个有项目列表及其所有者。我想要两个datagrids: 1)所有者名单。 2)项目列表及其所有者,从组合框中选择所有者。

其中第一个很简单:将表设置为数据源,然后将其拖到WPF表单上。工作得很好:

<DataGrid ItemsSource="{Binding Source={StaticResource ownersViewSource}}" Name="ownersDataGrid" DataContext="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn x:Name="ownerColumn1" Binding="{Binding Path=Owner}" />
    </DataGrid.Columns>
</DataGrid>

另一部分不起作用。我原以为这会起作用,但我显然没有得到它:

<DataGridTemplateColumn Header="Header">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <ComboBox ItemsSource="{Binding Source={StaticResource ownersViewSource}}" DisplayMemberPath="Owner" />
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

(显然,这是在DataGrid中)

问题是这显示了列表 - 但是从组合框中选择项目也会将所有其他行中的选定项目更改为该项目!

我哪里错了?

1 个答案:

答案 0 :(得分:0)

知道了!

<DataGridComboBoxColumn Header="Owner Choice" ItemsSource="{Binding Source={StaticResource ownerViewSource}}" DisplayMemberPath="Owner" SelectedItemBinding="{Binding Path=Owner}"  />

(ItemsSource绑定到一个地方,SelectedItemBinding绑定到另一个地方。)