如何从第二个窗口
问题描述:
答
MVVM
CountDownView 代表一个计时器观,简单的TextBlock绑定到CurrentValue
财产或一些更漂亮的/复杂的,而不是TextBlock的
2. CountDownViewModel 代表一个计时器本身,在视图上显示属性int CurrentValue
显示为倒计数。要实现倒计时,您可以使用Sytem.Timers.Timer和Elapsed event处理器只是递减CurrentValue的属性值
TimersView - 为第一窗口6个定时器
- ItemsCountrol/ListView控件,
- 的ItemTemplate - CountDownView
-
ItemsSource - 绑定到
Timers
属性TimersViewModel
,基本上TimersViewModel shoudl被设置为TimersView的DataContext,所以你woudl EB能够指定以下的结合:(以及每个项目将被绑定到单个定时器)<ListView ItemsSource="{Binding Timers}" ... />
4. TimersViewModel - 暴露IEnumerable<CountDownViewModel> Timers
属性
5. SettingsView - 设置面板
PS:INotifyPropertyChanged适用于暴露于Views的所有VM属性
作业为您:
- 了解MVVM原则,WPF绑定和命令,这将是对你有所帮助带齐你的职业生涯
- TimersViewModel之间实现关系,SettingsViewModel自己
你尝试了什么?什么阻止你应该是微不足道的? –
应该很简单,只需要两种形式并将它们实例化即可。只要它们是公开的,您可以直接引用每个表单上的组件(除非您使用多个线程)。 – Polynomial
@Polynomial从不建议从另一个窗体访问一个窗体的UI控件。这是不健壮的,并建议使用方法,属性和OO approahc代替。如果您公开名称文本框而不是简单的名称属性,这将创建一个依赖关系,并且代码将不再以相同的方式工作,或者如果文本框被替换为标签,代码将需要太多更改,就像简单的示例一样... –