我有一个DataSrid,ItemsSource设置为产品列表和 我在DataGrid中有一个DataGridComboBoxColumn,ItemsSource设置为类别列表。这样我希望用户为每个产品选择一个特定类别。
我总是得到绑定错误:
BindingExpression路径错误:'对象'''产品'(哈希)上找不到'类别'属性
我不希望将Product实体的Category列表部分设为1:N关系,尽管它可以这样工作。
我想将它们分开。
任何人都知道解决方法吗?
答案 0 :(得分:1)
使用静态属性创建类,如
static class ValueLists
{
public static IEnumerable<Category> Categories {get {... }}
}
并使用以下绑定
ItemsSource="{x:Static myNs:ValueList.Categories}" />
答案 1 :(得分:0)
This可能与您的问题有关。
这里发生了什么? Columns集合只是Datagrid中的一个属性;此集合不在逻辑(或可视)树中,因此DataContext不会被继承,这会导致无法绑定。
答案 2 :(得分:0)
这是一种迟到的回复,但为了分享我发现的知识:
Binding a WPF DataGridComboBoxColumn with MVVM
这个答案显示并非总是必须将第二个列表转换为静态类,您始终可以指定 RelativeSource 并搜索特定的 Ancestor 然后绑定到ViewModel中的“其他”列表。