ItemsSource绑定和不工作PropertyChanged

时间:2012-02-14 23:28:07

标签: wpf data-binding

我设置DataContext

this.DataContext = new MainWindowViewModel();

我绑定了ItemsSource的{​​{1}},当我在TabControl的构造函数中添加新的TabItem时,它正在运行!但是当我在事件(Click)中添加新的MainWindowViewModel时,没有效果。

我有这个属性:

TabItem

请帮忙。

4 个答案:

答案 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。