gpt4 book ai didi

wpf - 将 View 模型与模型相结合

转载 作者:行者123 更新时间:2023-12-02 02:04:55 26 4
gpt4 key购买 nike

好的,还有一点需要思考。

MVVM 指出 Model 与 ViewModel 无关。因此,ViewModel 公开了要绑定(bind)的 View 的属性。

Microsoft 代码分析规则告诉我向模型中的公共(public)变量添加一个属性。

warning : CA1051 : Microsoft.Design : Because field 'Employee.name' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it.

现在它有 2 个重复的属性,我宁愿把它干掉,所以我在考虑合并 ViewModel 和 View。这里还有一件事,Model 是一个 POCO,并且 Will 没有 INotifyPropertyChanged,所以让 VM 知道 Model 值的变化是另一个问题。我使用了很多基于 IList 的绑定(bind)

是否有我忽略的 future 问题?

编辑:我忘了说,我看了看 how to correctly define Model to ViewModel relation? ,我们软件中的另一件事是我们有一个单独的实体来填充 IList,它是一个服务/实用程序集。 EmployeeViewModel 位于单独的 VIEW 程序集中。所以我无法返回 ILIst。

最佳答案

不要这样做。我知道这听起来像很多你不需要的额外东西,但随着你的应用程序变得越来越复杂,它会得到返回。我发现绑定(bind)一个 ViewModel 是绝对必要的,它支持属性通知,并让我以 View 可以轻松使用的方式呈现数据,而无需绑定(bind)到模型中的表示 - ViewModel 根据需要在两者之间转换.

如果您没有这些层次,将来更改事物,尤其是当您通过一定程度的复杂性时,将变得非常困难。

现在,您是否听取 Microsoft 关于在您的模型上使用公共(public)属性而不是公共(public)字段的建议取决于您,但如果您以后需要将一些逻辑放入 getter 和 setter 中,这是一个好习惯。一开始,自动属性可以很好地替代简单的公共(public)字段,让您不必在实际需要一个支持字段之前声明一个支持字段。

关于wpf - 将 View 模型与模型相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15493823/

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