1

我在 wpf 中有一个数据网格和一个结构列表,我想在网格中只显示它的一些属性。

例如

public struct Person
{
   public int age;
   public string name;
   public string hobby;
} 

private List<Person> lst=new List<Person>();

我想在数据网格中只显示姓名和年龄。我怎样才能在一个循环中做到这一点?

我这样做

foreach(Person p in lstp)
{ 
   datagrid.Items.Add(p.name);
} 

但什么都没有显示。

4

2 回答 2

3

您的结构不包含任何属性,仅包含字段。此外,您最终会直接添加字符串。

您可以添加匿名对象,它们使用属性:

...Add(new { Name = p.name, Age = p.age })

(或者,您可以将属性添加到您的结构并直接添加这些属性。如果您的属性比您想要显示的更多,只需手动创建列,AutoGenerateColumn关闭)

于 2012-06-17T18:46:54.120 回答
0
  datagrid.ItemSource = lst;

try this.

sorry, lost the idea.... Just mark the property you don't want by [Browsable(false)] attribute

于 2012-06-18T02:33:43.130 回答