我设置DataContext
:
this.DataContext = new MainWindowViewModel();
我绑定了ItemsSource
的{{1}},当我在TabControl
的构造函数中添加新的TabItem
时,它正在运行!但是当我在事件(Click)中添加新的MainWindowViewModel
时,没有效果。
我有这个属性:
TabItem
请帮忙。
答案 0 :(得分:2)
如果您希望向UI通知收集更改,则应使用ObservableCollection
,而不是List
。
ObservableCollection<Item> _listOfItem;
public ObservableCollection<Item> ListOfItem
{
get
{
return _listOfItem;
}
set
{
_listOfItem = value;
PropertyChanged(this, new PropertyChangedEventArgs("ListOfItem"));
}
}
请注意,如果在构建视图模型类型后引用发生更改,则只需为PropertyChanged
调用ListOfItem
事件。如果它没有改变,那么一个简单的自动属性就足够了ListOfItem
。
答案 1 :(得分:1)
对于集合更改,您需要源集合来实现INotifyCollectionChanged
,您可以使用ObservableCollection<T>
(实现它)而不是List<T>
。
答案 2 :(得分:1)
您需要使用UI的ObservableCollection来查看集合的添加和删除。它在构造函数中工作,因为List是为UI构建的。
答案 3 :(得分:1)
列表不起作用。
您应该使用ObservableCollection作为ListOfItem。