0

如何从 wpf datagrid 获取项目数据:

商品值为 { ProductId = 1, Name = "fruit", Quantity = 1, Price = 100.0 },类型为匿名类型。

代码:

foreach (var item in this.dgProductList.Items)

已编辑

这就是我添加行的方式:

this.dgProductList.Items.Add(new { ProductId = product.ProductId, Name = product.Name, Quantity = 1, Price = product.Price });
4

3 回答 3

4

考虑到您用 标记问题WPF,会说:

不要采取行动UI。如果您需要查找某些内容,请在模型侧找到它。之后,如果您需要UI以某种方式对已创建的项目进行操作,请继续在屏幕上ModelView推送更改。UI

简而言之:不要在UI中采取行动WPF,因为UI它很容易成为更改的主题,并且您的代码会中断。使用强大的数据绑定WPF提供给您的好处。

于 2012-09-27T08:10:03.033 回答
0

就像在前面的答案中告诉你的那样,你应该考虑使用 WPF-Binding。

但如果你真的不想这样做,你可以试试这个,但它不是“WPF 方式”:

object objectToFind = new { ProductId = 1, Name = "fruit", Quantity = 1, Price = 100.0 }; //create the object which should be found in your datagrid.

object result = dg.Items.Cast<object>().ToList().Find(o => o.Equals(objectToFind)); //find the object
于 2012-09-27T08:51:05.950 回答
0

首先我必须说我同意 Tigra,如果您使用 WPF,建议的方法是利用数据绑定。

在您的特定情况下,您不使用数据绑定,而是将匿名类型添加到数据网格,然后您想稍后检索它们。

起初我建议不要使用匿名类型,而是为 Product 创建一个类。

无论如何,如果您想继续使用匿名类型,您可以应用此处提出的解决方案

祝你好运。

于 2012-09-27T08:30:57.200 回答