我有一个由三个类组成的模型:A,B和C. A具有B的ObservableCollection,B具有C的ObservableCollection。 C具有引用(不可观察..我不认为是必要的)给它的父母(B),并且B有一个对A的引用。 A,B和C的每个属性通知它的变化。通知属性不在UI中“更新”
然后我有一个Model类,它可以“跟踪”分配的所有对象。所以它有一个A,B和C的ObservableCollection(唯一需要的是As;我保留B和C的列表仅用于更快的引用)。
我的用户界面有一个自定义控件:它有一个ViewModel。该视图有一个列表。它的ItemSources绑定到它的ViewModel到一个名为sensors的observablecollection。这个ObservableCollection是RowViewModel的。每个RowViewModel保持对C对象的引用。
我的应用程序加载模型(创建A,B,C的对象),然后通过调用此方法设置视图列表(也许这是什么问题?)
public void setSensors(IList<C> list)
{
this.sensors.Clear();
if (list != null)
{
foreach (var row in list)
this.sensors.Add(new RowViewModel(row));
}
}
的问题是,如果我修改了我的C对象的属性,这不反映在用户界面上。
有人可以帮助我吗? 谢谢
弗朗西斯
编辑:(解决) 感谢您的回答我检查了我的代码,改变了一两件事:不是我的UI元素绑定到它的视图模型(以及视图模型只是“重定向”的号召到模型属性),我直接将用户界面绑定到不动产,并且它可以工作! 因此......在MVVM中,我不能使用“快捷方式”??或者如果我使用它们,我应该注册属性的通知并“传播”它们?
你的财产更改了正确触发的事件吗? – squelos 2012-03-07 08:45:33
呃..我想是的。我在我的“NotifyPropertyChanged”中放置了一个断点,然后输入它 – Francesco 2012-03-07 08:47:09
尝试检查是否有人正在收听这些事件。如果正确的对象正在有效地收听,那么我不知道:/ – squelos 2012-03-07 08:49:56