如何在WPF DataGrid中绑定“Up”?

时间:2017-11-08 17:29:20

标签: wpf data-binding wpfdatagrid

我有一个我用作ItemSource的{​​{1}}的集合。 ItemSource是自定义对象(Cars)的列表,每个Car对象都有一个DataGrid对象列表作为属性。在每个Licensor对象中,都有一个必须在DataGrid中显示的字典集合。所以对象看起来像这样:

  • 汽车

  • int CarId
  • string Name
  • string Make
  • int Year
  • 列出许可人

    -

  • 许可

  • int LicensorId
  • string Name
  • Dictionary(int,string)许可证

DataGrid在Licensor中显示Car对象集合的前2个属性,但是我需要显示Licensor列表的字典属性中的值,其中键是Car ID。换句话说,我需要从TextBox绑定“up”。所以我的DataGrid看起来像这样:

DataGridTemplateColumn

代码中的最后一列是我需要将“up”绑定回父对象以访问<DataGrid Name="MyDataGrid" ItemsSource="{Binding Cars}"> <DataGrid.Columns> <DataGridTemplateColumn Header="Car Name"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBox Text="{Binding Name}" /> </DataTemplate> </DateGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Header="Car Make"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBox Text="{Binding Make}" /> </DataTemplate> </DateGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Header="Licensor Name"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ItemsControl ItemsSource="{Binding Licensors}"> <ItemsControl.ItemTemplate> <DataTemplate> <TextBox Text="{Binding Name}" /> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </DataTemplate> </DateGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <!-- THE BELOW COLUMN IS THE ONE THAT NEEDS TO BIND 'UP' --> <DataGridTemplateColumn Header="First License"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ItemsControl ItemsSource="{Binding Licensors}"> <ItemsControl.ItemTemplate> <DataTemplate> <TextBox Text="{Binding Licenses[{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}, Mode=FindAncestor}, Path=DataContext.CarId}][0]}" /> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </DataTemplate> </DateGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> 属性以用作Dictionary的键值的列。有没有人这样做过?我对最后一列的代码不起作用,我的想法是让当前列的祖先访问DataGrid的主要源或上下文,但这不起作用。

谢谢!

0 个答案:

没有答案