WPF:将 DataGrid 绑定到列表将 DataGridComboBoxColumn 绑定到列表

发布于 2024-09-06 09:00:07 字数 345 浏览 9 评论 0原文

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

我总是收到绑定错误:

BindingExpression path error: 'Categories' property not find on 'object' ''Product' (Hash)

好吧,我不想将 Product 实体的 Category 列表作为 1:N 关系的一部分,尽管就这样。

我想让他们分开。

有人知道解决方法吗?

I have a DataGrid with ItemsSource set to a list of products and
I have a DataGridComboBoxColumn inside the DataGrid with ItemsSource set to a list of categories. That way I want the user to choose a certain category for each product.

I always get the binding error:

BindingExpression path error: 'Categories' property not found on 'object' ''Product' (Hash)

Well I do not want to make the Category list part of the Product entity as 1:N relation, although it would work that way.

I want to keep them separate.

Anyone knows a workaround?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

寄居者 2024-09-13 09:00:07

创建具有静态属性的类

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

,并使用以下绑定

ItemsSource="{x:Static myNs:ValueList.Categories}" />

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}" />
旧时光的容颜 2024-09-13 09:00:07

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

Binding a WPF DataGridComboBoxColumn with MVVM

这个答案表明,并不总是强制将第二个列表转换为静态类,您始终可以指定 RelativeSource 并搜索特定的 Ancestor,然后绑定到 ViewModel 中的“其他”列表。

this is kind of late reply but in order to share the knowledge I found this:

Binding a WPF DataGridComboBoxColumn with MVVM

This answer shows that is not always mandatory to convert the second list to a static class, you can always specify a RelativeSource and search for an specific Ancestor and then bind to the "other" list you have in your ViewModel.

以往的大感动 2024-09-13 09:00:07

可能与您的问题相关。

这里发生了什么?
Columns 集合只是 Datagrid 中的一个属性;该集合不在逻辑(或可视)树中,因此 DataContext 没有被继承,这导致没有任何内容可以绑定。

This is probably relevant to your problem.

What is happening here?
The Columns collection is just a property in the Datagrid; this collection is not in the logical (or visual) tree, therefore the DataContext is not being inherited, which leads to there being nothing to bind to.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文