【发布时间】:2018-10-13 17:02:55
【问题描述】:
我有一个类,将其命名为 People,它实现了 INotifyPropertyChanged 并具有两个属性:Name 和 Surname。
public IList<People> myCollection;
myCollection = new ObservableCollection<People>();
myCollection.add(new People("Jerry", "Jerry");
myCollection.add(new People("Tom", "Tom");
在 XAML 中,我有一个名为“ListOfNames”的列表框 我能做到:
ListOfNames.ItemsSource = myCollection;
一切正常。我的问题是,如何通过 XAML 将 myCollection 分配为 ItemsSource?
使用单个对象,例如:
People myPerson = new People("Tom", "Tom");
<Window.Resources>
<local:People x:Key="myPerson" />
</Window.Resources>
<label Content="{Binding source={StaticResource myPerson}}" />
绑定工作正常。但是,如果我尝试使用列表:
<Window.Resources>
<local:People x:Key="myCollection" />
</Window.Resources>
<ListBox ItemsSource="{Binding source={StaticResource myCollection}}" />
它不显示任何内容。显然,我误解了某些事情并且做错了。我假设它需要一个对象“人”,而获取对象列表会使它感到困惑,这意味着应该以不同的方式引用列表。请问应该怎么做。
【问题讨论】:
-
改用 ObservableCollection
标签: c# xaml binding observablecollection