绑定到DataGridRowHeader中的Collection无法按预期工作

时间:2017-12-12 15:04:53

标签: c# wpf xaml data-binding datagrid

我的DataGrid绑定了ObservableCollection<Entry>

public class Entry
{
     public List<string> Types {get; set;} = new List<string>() {"Type1", "Type2"};
}

由于DataGrid.ItemsSourceEntry的集合,我希望单个DataContext的{​​{1}}为typeof(DataGridRow)。

Entry

第一个<DataGrid ItemsSource="{Binding Entries}"> <DataGrid.RowHeaderTemplate> <DataTemplate> <Border Width="100"> <StackPanel> <ComboBox ItemsSource="{Binding DataContext.Entries[0].Types, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" /> <ComboBox ItemsSource="{Binding Types}" /> </StackPanel> </Border> </DataTemplate> </DataGrid.RowHeaderTemplate> </DataGrid> 正在运作 - 第二个不是。

我仍然在Binding - Visual Studio窗口中没有BindingError

我需要为每个Output显示Types,因此通过索引访问无效。

1 个答案:

答案 0 :(得分:1)

这应该有效:

<ComboBox ItemsSource="{Binding DataContext.Types, RelativeSource={RelativeSource AncestorType=DataGridRowHeader}}" />