WPF:将DataGrid绑定到列表<;产品>;将DataGridComboxColumn绑定到列表<;类别>;?

WPF:将DataGrid绑定到列表<;产品>;将DataGridComboxColumn绑定到列表<;类别>;?,wpf,datagrid,datagridcomboboxcolumn,Wpf,Datagrid,Datagridcomboboxcolumn,我有一个DataGrid,其中ItemsSource设置为产品和服务列表 我在DataGrid中有一个DataGridComboxColumn,其中ItemsSource设置为类别列表。这样,我希望用户为每个产品选择特定的类别 我总是得到绑定错误: BindingExpression路径错误:在“对象”“产品”(哈希)上找不到“类别”属性 我不想将类别列表作为1:N关系作为产品实体的一部分,尽管它可以这样工作 我想把它们分开 有人知道解决方法吗?使用静态属性创建类,如 static class

我有一个DataGrid,其中ItemsSource设置为产品和服务列表 我在DataGrid中有一个DataGridComboxColumn,其中ItemsSource设置为类别列表。这样,我希望用户为每个产品选择特定的类别

我总是得到绑定错误:

BindingExpression路径错误:在“对象”“产品”(哈希)上找不到“类别”属性

我不想将类别列表作为1:N关系作为产品实体的一部分,尽管它可以这样工作

我想把它们分开


有人知道解决方法吗?

使用静态属性创建类,如

static class ValueLists
{
   public static IEnumerable<Category> Categories {get {... }}
}

创建具有静态属性的类,如

static class ValueLists
{
   public static IEnumerable<Category> Categories {get {... }}
}
可能与你的问题有关

这里发生了什么事?
Columns集合只是Datagrid中的一个属性;此集合不在逻辑(或可视)树中,因此不会继承DataContext,这将导致没有可绑定的对象

可能与你的问题有关

这里发生了什么事?
Columns集合只是Datagrid中的一个属性;此集合不在逻辑(或可视)树中,因此不会继承DataContext,这将导致没有可绑定的对象


这是一种迟到的回复,但为了分享我发现的知识:


这个答案表明,将第二个列表转换为静态类并不总是必须的,您可以始终指定一个相对资源,搜索特定的祖先,然后绑定到“其他”列出您在ViewModel中的列表。

这是一种延迟回复,但为了分享我发现的知识:


这个答案表明,将第二个列表转换为静态类并不总是必须的,您可以始终指定一个相对资源,搜索特定的祖先,然后绑定到“其他”列出您在ViewModel中拥有的内容。

我发现了一个很好的链接,它处理的内容与我需要的完全相同:我无法在静态类中实现INotifyPropertChanged;-)而不是静态绑定,这不起作用吗?=>ItemsSource=“{Binding Path=DataContext.Categories,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}}}}}}”IsReadOnly=“True”Background=“White”/>我发现了一个处理完全相同内容的好链接:我无法在静态类中实现我需要的INotifyPropertChanged;-)而不是静态绑定,这不起作用吗?=>ItemsSource=“{Binding Path=DataContext.Categories,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}}}}}}”IsReadOnly=“True”Background=“White”/