- C# code
public class MyDataClass { public MyDataClass(String name) { this._name = name; } private String _name ; public String Name { get { return this._name; } } } public MainPage() { InitializeComponent(); MemberInfo[] filedInfos = typeof(InputScopeNameValue).GetMembers(); MyDataClass[] datas = new MyDataClass[filedInfos.Length]; for (int i = 0; i < filedInfos.Length; i++) { MyDataClass myData = new MyDataClass(filedInfos[i].Name); datas[i] = myData; } [color=#FF0000] //正常显示数据 this.DataContext = datas; //不显示数据 //this.DataContext = filedInfos;[/color] }
- XML code
<ListBox Height="500" Width="400" ItemsSource="{Binding}"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=Name}" Foreground="Red" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
this.DataContext设置成datas就可以,换成filedInfos就不成,同样是数组,数组中都是对象,都有一个Name属性,为啥一个可以一个不可以。。。
------解决方案--------------------
filedInfos 是怎么定义的?
------解决方案--------------------
你这个只是经他赋值。
MemberInfo类的定义是什么?
------解决方案--------------------
public override string ToString()
{
return Name;
}
------解决方案--------------------
可能跟MemberInfo是抽象类有关系