我正在编写一个应用程序,我尝试使用MVVM样式体系结构来处理我的数据绑定(尽管我没有使用MVVM特定的库,例如MVVM Light )。我有一个类,它存储了我的应用程序需要的所有信息,然后为每个屏幕分配一个视图模型给它的DataContext,它只需选择特定屏幕所需的值,并在必要时格式化数据。在Silverlight/WP7应用程序中使用MVVM样式模式
作为一个例子,主数据存储看起来是这样的:
class DataStore {
int a, b, c;
string d;
DateTime e;
}
然后分配给特定画面,只使用几个属性的视图模型,是一样的东西
class MainScreenViewModel {
public int data1 { get { return App.DataStore.a * App.DataStore.c } }
public int data2 { get { return App.DataStore.e.Day } }
}
这似乎工作正常,当页面加载数据绑定填充,因为它们应该是。但是,它们在页面加载时不会自动更新。我已经在DataStore上实现了INotifyPropertyChanged,但似乎change事件不会通过视图模型反映出来。我确信我正在讨论这种非常糟糕的方式,所以如果有人能帮助我指出正确的方向,我会非常感激。我在网上阅读了一堆指南,但我似乎越来越困惑自己!
谢谢,这似乎是我想要做的。你是什么意思/ /在RaisePropertyChanged提高它? – 2011-06-13 10:22:42
得到它的工作,谢谢 – 2011-06-13 10:25:51
@Jordan,'提高它'意味着'提高PropertyChanged'。我懒得完全输入:) – Snowbear 2011-06-13 10:26:50