gpt4 book ai didi

WPF 绑定(bind)到一个不变的属性

转载 作者:行者123 更新时间:2023-12-04 16:04:39 24 4
gpt4 key购买 nike

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

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

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

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

我错过了什么吗?

最佳答案

您走在正确的轨道上。看看 Presentation Model Martin Fowler 页面上的模式。

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

由于您希望在 UI 中显示“自此以来耗时”值,因此您的 ViewModel 应该有一个名为 ElapsedTimeSince 的属性。您的 WPF View 有一个数据绑定(bind)到此属性的控件。现在根据您的需要,确保您有一个线程/计时器事件,该事件使用当前时间和模型的 StartDate 属性定期重新评估属性值。您的 UI 应反射(reflect)更新后的值。

关于WPF 绑定(bind)到一个不变的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/542124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com