我第一次做一个 WP7 应用程序,我正在尝试使用 MVVM 模式。我正在制作一个闹钟,这就是我所拥有的:
视图 - MainView.xaml
...
<TextBox Text="{Binding Hour, Mode=TwoWay}"></TextBox>
...
型号 - AlarmClock.cs:
...
private string _second = 22;
public string Second {
get { return _second; }
set {
_second = value;
OnPropertyChanged("Second");
}
}
...
ViewModel - MainViewModel.cs
...
private AlarmClock alarmClock;
public MainViewModel() {
alarmClock = new AlarmClock();
}
public string Second {
get { return alarmClock.Second; }
set {
alarmClock.Second = value;
OnPropertyChanged("Second");
}
}
在 MainView.xaml.cs 我将数据上下文设置为 this.DataContext = new ViewModel();
ViewModel 和 Model 都实现了 INotifyPropertyChanged 接口。
我的问题是:在模型中,我有一个每秒滴答的 DispatcherTimer。当我这样做时:
第二 = 23;
我的视图(我的文本框)没有更新,也没有显示 _second 的值。但是如果我在文本框中写了一些东西,那么我的模型似乎是用输入的值更新的。
有人可以看到我做错了什么吗?
提前谢谢你,彼得