C# 如何通过绑定连接datagrid中两个列表中的数据
我有两个列表,希望通过数据网格上的绑定将它们连接起来。考虑列表中有很多数据,因此在代码后面操作列表不是一个选项:C# 如何通过绑定连接datagrid中两个列表中的数据,c#,wpf,data-binding,datagrid,C#,Wpf,Data Binding,Datagrid,我有两个列表,希望通过数据网格上的绑定将它们连接起来。考虑列表中有很多数据,因此在代码后面操作列表不是一个选项: public class Person : INotifyPropertyChanged { public string FirstName { get; set; } public string LastName { get; set; } public int CategoryId { get; set; } ... } public class
public class Person : INotifyPropertyChanged
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int CategoryId { get; set; }
...
}
public class Category : INotifyPropertyChanged
{
public int CategoryId { get; set; }
public string CategoryName { get; set; }
...
}
public partial class MainWindow : Window
{
private ObservableCollection<Person> PersonList;
private ObservableCollection<Category> CategoryList;
...
this.PersonDataList.ItemsSource = this.PersonList;
...
}
XAML将类似于:
<DataGrid x:Name="PersonDataList" EnableColumnVirtualization="True" EnableRowVirtualization="True" IsReadOnly="True" AutoGenerateColumns="False">
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName,Mode=OneWay}" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName,Mode=OneWay}" />
<DataGridTextColumn Header="Category ID" Binding="{Binding CategoryId,Mode=OneWay}" Visibility="Hidden" />
<DataGridTextColumn Header="Category" Binding="{Binding CategoryName,Mode=OneWay}" />
</DataGrid>
我可以通过ValueConverter实现,但是CategoryList中CategoryName的更改不会显示在DataGrid中,这是非常糟糕的
我也可以通过使用DataGridComboxColumn来实现这一点,但我不想在DataGrid中的每行人员上填充CategoryList,也不想显示下拉框——只是纯文本
有没有办法通过使用DataGridTemplateColumn和HierarchycalDataTemplate来解决这个问题