C# XAML与细胞的结合

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"); 一切都很好

我有一个名为People的类,它实现了INotifyPropertyChanged,有两个属性:name和姓氏

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}" />