3

我正在使用 MVVM 模式,并且我有一个带有 Start Date 属性的 POCO(在我的模型中)。

我想在 WPF 窗口/用户控件上的控件中显示自开始日期以来经过的时间...

我看不到如何将 ModelView 属性绑定到 UI 控件并让它自动更新此持续时间...有人可以建议一种方法吗?

我可以使用某些东西(计时器或线程)来更新我的 ModelView 上的持续时间属性,但我只是看不到任何其他方式,因为据我了解,UI 只会在属性值更改时更新。但是,我的 POCO 上的开始日期并没有改变,只是经过的时间在改变,这是一个计算值。

我错过了什么吗?

4

1 回答 1

3

你在正确的轨道上。查看Martin Fowler 页面上 的演示模型模式。

基本思想是为 UI 构建一个模型(ViewModel)并让 UI 与之同步。要在 UI 中显示的每一位信息,都应该在 ViewModel 中具有相应的字段或属性(尽管它们可能是从模型中的值检索或派生的).. ViewModel 使存储视图状态/会话状态变得容易(例如当前在一个UserList 中选择的项目)这在Model 类后面是不存在的。

由于您想在 UI 中显示“经过的时间”值,因此您的 ViewModel 应该有一个名为 ElapsedTimeSince 的属性。您的 WPF 视图有一个数据绑定到此属性的控件。现在根据您的需要,确保您有一个线程/计时器事件,该事件使用当前时间和模型的 StartDate 属性定期重新评估属性值。您的 UI 应反映更新后的值。

于 2009-02-12T16:59:22.257 回答