如何从wpf datagrid获取项目数据:
项目值为{ProductId = 1,Name =“fruit”,Quantity = 1,Price = 100.0},类型为匿名类型。
代码:
foreach (var item in this.dgProductList.Items)
EDITED
这是我添加行的方式:
this.dgProductList.Items.Add(new { ProductId = product.ProductId, Name = product.Name, Quantity = 1, Price = product.Price });
答案 0 :(得分:4)
考虑到您使用WPF
提问,请说:
不要对UI
采取行动。如果您需要查找内容,请在模型侧找到它。之后,如果您需要UI
以某种方式对已创建的项目执行操作,请在ModelView
上操作以在屏幕上推送UI
更改。
简而言之:不要对UI
中的WPF
采取行动,因为UI
它很容易成为变更主体,而您的代码将会中断。使用强大的数据绑定WPF
提供给您的好处。
答案 1 :(得分:0)
起初我必须说我同意Tigran,如果你使用WPF,建议的方法是利用数据绑定。
在您的特定情况下,您不使用数据绑定,您将匿名类型添加到数据网格,然后您想稍后检索它们。
首先,我建议不要使用匿名类型,而是为Product创建一个类。
无论如何,如果您想继续使用匿名类型,您可以应用建议的解决方案here
祝你好运。答案 2 :(得分: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