C# XAML与细胞的结合
我有一个名为People的类,它实现了INotifyPropertyChanged,有两个属性:name和姓氏C# XAML与细胞的结合,c#,xaml,binding,observablecollection,C#,Xaml,Binding,Observablecollection,我有一个名为People的类,它实现了INotifyPropertyChanged,有两个属性:name和姓氏 public IList<People> myCollection; myCollection = new ObservableCollection<People>(); myCollection.add(new People("Jerry", "Jerry"); myCollection.add(new People("Tom", "Tom"); 一切都很好
public IList<People> myCollection;
myCollection = new ObservableCollection<People>();
myCollection.add(new People("Jerry", "Jerry");
myCollection.add(new People("Tom", "Tom");
一切都很好。我的问题是,如何通过XAML将myCollection指定为ItemsSource
使用单个对象,如:
People myPerson = new People("Tom", "Tom");
<Window.Resources>
<local:People x:Key="myPerson" />
</Window.Resources>
<label Content="{Binding source={StaticResource myPerson}}" />
People myPerson=新人(“汤姆”、“汤姆”);
装订工作正常。然而,如果我尝试使用列表:
<Window.Resources>
<local:People x:Key="myCollection" />
</Window.Resources>
<ListBox ItemsSource="{Binding source={StaticResource myCollection}}" />
它没有显示任何内容。很明显,我误解了一些事情,做得不对。我假设它需要一个对象“People”,而得到一个对象列表会让它感到困惑,这意味着,列表应该以不同的方式引用。请怎么做。您不能绑定到字段,必须绑定
public observeablecollection MyCollection
{
获取{return\u myCollection;}
设置{u myCollection=value;}
}
如果您在窗口级别正确设置了数据源,这将起作用。可能会重复Try ObservableCollection
<Window.Resources>
<local:People x:Key="myCollection" />
</Window.Resources>
<ListBox ItemsSource="{Binding source={StaticResource myCollection}}" />
public ObservableCollection<> MyCollection
{
get { return _myCollection; }
set { _myCollection = value; }
}
<ListBox ItemsSource="{Binding Path=MyCollection}" />