gpt4 book ai didi

wpf - 在 MVVM 中,如何将 View 逻辑与模型和业务逻辑保持在 View 模型之外?

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

我无法弄清楚如何让 View 模型收到模型更改的通知,而无需在我的模型中添加一堆特定于 UI 的东西,例如 INotifyProperyChanged 和 INotifyCollectionChanged,或者创建大量不同的事件并做一堆感觉就像它们是特定于 UI 的,应该远离模型。

否则我只需要复制 View 模型中的所有业务逻辑以确保一切都是最新的,那么拥有模型有什么意义呢?

我的模型中的一个棘手问题是“类别”类的属性。你可以把它想象成一个树结构,属性都是叶子节点的后代。那么在模型中,属性是通过它的所有 child 递归生成的,这一切都很好。然而, View 模型需要绑定(bind)到该属性并且需要知道它何时更改。我应该更改模型以适应 View 模型吗?如果我这样做了,那么此时 View 模型实际上并没有做任何事情,模型会引发所有必要的更改通知,并且 View 可以直接绑定(bind)到模型。此外,如果模型是我没有来源的东西,我将如何解决这个问题?

最佳答案

我不同意 INotifyPropertyChangedINotifyCollectionChanged是特定于 UI 的。它们位于未绑定(bind)到任何特定 UI 堆栈的命名空间和程序集中。出于这个原因,我通常将这种行为放在系统中尽可能低的位置(通常是数据层)。

如果出于某种原因您不想将其置于该级别,那很好。您可以将其放在更高的级别,例如服务或 UI 层。但是,您需要确保对数据结构的所有更改也通过该层发生。

关于wpf - 在 MVVM 中,如何将 View 逻辑与模型和业务逻辑保持在 View 模型之外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900991/

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