我是一个总的新手,刚学的基础知识DataContext
和MVVM模型。 现在我有了必然要它实现了一个视图模型对象的网格INotifyPropertyChanged
,但是似乎UpdateSourceTrigger
(其中所有的WPF的教程告诉我用)不提供的WinRT / Metro风格应用程序!
如何执行INotifyPropertyChanged呢?
我在我的系绳结束了。 我已经花了最基本的应用实例几乎整整一天,无非是想获得一个网格,更新我点击的东西之后。 我已经成功地做到这一点,到目前为止的唯一方法是创建视图模型的一个全新的实例,并重新分配DataContext
,我知道错了
更新:
我已经取得了一些进展,但事情变得很怪异。 我有一个视图模型,以项目的泛型列表。 该项目列表连线了一个PropertyChangedEventHandler。 如果我有一个新的,列表视图更新替换整个集合。
model.Items = new List<DataItem>{ new DataItem{ Title = "new item" }};
这导致了一个项目列表与上述项目。 不过,如果我尝试添加一个项目,什么也没有发生
model.Items.Add(new DataItem{ Title = "added item" });
我也尝试创建它增加了一个项目,专门烧制的PropertyChanged的方法,但也不能正常工作
这里的地方会很奇怪。 接下来我想这个代码。
model.Items.Add(new DataItem { Title = "added item" });
model.Items = new List<DataItem> { new DataItem { Title = "new item" }};
这将导致两个项目列表:
- new item
- added item
怎么会这样? 该守则的规定,“增加一个项”,然后“整体更换名单”,但它以相反的顺序执行?
更新2:
作为建议,这实际上已经解决了原来的问题,我已经切换到的ObservableCollection。 我现在可以添加一个项目,它显示在列表上。
然而,新的怪异的行为仍然有效。 在收集之前添加的项目被重置附加到新的集合的末尾。 为什么我的代码以相反的顺序执行?