WPF DataGrid DataGridComboBoxColumn ItemsSource引用关闭DataGrid.ItemsSource

时间:2014-01-09 21:38:52

标签: c# wpf xaml datagrid wpfdatagrid

我有一个像下面的DataGrid

<DataGrid ItemsSource="{Binding Collection}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False">
     <DataGrid.Columns>
          <DataGridTextColumn Header="Col1" Binding="{Binding Col1}" IsReadOnly="True" />
          <DataGridComboBoxColumn Header="Col2" ItemsSource="{Binding Col2}" SelectedItemBinding="{Binding Selected}" />
     </DataGrid.Columns>
</DataGrid>

最终在Col1中的值实际上是Window.DataContext.Collection[index].Col1,但WPF似乎在Window.DataContext.Col2寻找Col2的ItemsSource。我需要的实际路径是Window.DataConext.Collection[index].Col2

请注意,上面对index的引用不是静态值,而是每行从其中一个集合项中获取值。

我如何做到这一点?

1 个答案:

答案 0 :(得分:0)

试试这个:

<DataGridComboBoxColumn Header="Col2"  SelectedItemBinding="{Binding Selected}" 
                        ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, 
                                                                             AncestorType={x:Type Window}}, 
                                              Path=DataContext.Collection[index].Col2}" />

格式不佳。 (为index插入一个数字)