WPF:将DataGrid绑定到列表<product>,其中DataGridComboBoxColumn绑定到列表<category>?</category> </product>

时间:2010-06-18 20:15:00

标签: wpf datagrid datagridcomboboxcolumn

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

我总是得到绑定错误:

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

我不希望将Product实体的Category列表部分设为1:N关系,尽管它可以这样工作。

我想将它们分开。

任何人都知道解决方法吗?

3 个答案:

答案 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中的“其他”列表。