我有一个像下面的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
的引用不是静态值,而是每行从其中一个集合项中获取值。
我如何做到这一点?
答案 0 :(得分:0)
试试这个:
<DataGridComboBoxColumn Header="Col2" SelectedItemBinding="{Binding Selected}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}},
Path=DataContext.Collection[index].Col2}" />
格式不佳。 (为index
插入一个数字)