Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过绑定连接datagrid中两个列表中的数据_C#_Wpf_Data Binding_Datagrid - Fatal编程技术网

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来解决这个问题