我有一个将 ItemsSource 设置为产品列表的 DataGrid,并且在 DataGrid 中有一个 DataGridComboBoxColumn,其中 ItemsSource 设置为类别列表。这样我希望用户为每个产品选择一个特定的类别。
我总是收到绑定错误:
BindingExpression 路径错误:在“对象”“产品”(哈希)上找不到“类别”属性
好吧,我不想将产品实体的类别列表作为 1:N 关系的一部分,尽管它会这样工作。
我想让他们分开。
有人知道解决方法吗?
我有一个将 ItemsSource 设置为产品列表的 DataGrid,并且在 DataGrid 中有一个 DataGridComboBoxColumn,其中 ItemsSource 设置为类别列表。这样我希望用户为每个产品选择一个特定的类别。
我总是收到绑定错误:
BindingExpression 路径错误:在“对象”“产品”(哈希)上找不到“类别”属性
好吧,我不想将产品实体的类别列表作为 1:N 关系的一部分,尽管它会这样工作。
我想让他们分开。
有人知道解决方法吗?
Create class with static property like
static class ValueLists
{
public static IEnumerable<Category> Categories {get {... }}
}
and use following binding
ItemsSource="{x:Static myNs:ValueList.Categories}" />
这是一种迟到的回复,但为了分享我发现的知识:
使用 MVVM 绑定 WPF DataGridComboBoxColumn
这个答案表明,将第二个列表转换为静态类并不总是强制性的,您始终可以指定一个RelativeSource并搜索特定的祖先,然后绑定到您在 ViewModel 中拥有的“其他”列表。
这可能与您的问题有关。
这里发生了什么?
Columns 集合只是 Datagrid 中的一个属性;此集合不在逻辑(或可视)树中,因此 DataContext 没有被继承,这导致没有任何东西可以绑定。