2

我一直在看N=36 教程,它在 MvvmCross 3.09 中引入了新的 RIO 支持。将INC字段和旧学校属性组合在同一个班级中是否安全?我问是因为我的一些属性设置器和获取器很复杂,所以让它们保持原样可能更容易。然而,我现有的绝大多数属性都很简单,因此似乎是领域的绝佳候选者。

谢谢马克

4

1 回答 1

2

在这里使用“安全”是一个有趣的词——我不完全确定它在这种情况下的含义。

我个人认为在同一个项目和同一个视图模型中混合和匹配是安全的——结果不会有任何问题,并且内存和处理速度性能应该与性能一样好或更好.INotifyChangedINotifyPropertyChangedINotifyChangedINotifyPropertyChanged

我能想到的唯一潜在的不安全风险领域是:

  • 团队开发和以后的代码维护——同时使用这两种不同的方法可能会使你自己或其他编码人员在现在或以后的维护中感到困惑——他们问“我在哪里使用一种方法或另一种方法是公平的?” “为什么?”

  • 缺乏“全部更改”支持 -INotifyPropertyChanged允许 ViewModel 发送一切已更改的通知 - 他们可以使用null或空的属性名称来执行此操作。INotifyChanged目前未加入此通知。根据我的经验,这种“全部更改”机制很少使用,并且 Mvvm 开发人员并不熟悉 - 所以这里的风险很小。但是,如果有人确实尝试使用它,那么他们可能会对INotifyChanged绑定字段没有更新感到惊讶。

  • 对其他 Mvvm 库的可移植性 - Rio 是 MvvmCross 引入的绑定机制 - 所以它在其他 Mvvm 平台上尚不可用。如果您曾经移植回 Prism 之类的东西,那么这可能会给您带来风险(您可能必须将这些字段重写为属性)

  • 让 Windows 开发人员感到困惑 - 有经验的 Xaml 开发人员早在 2005 年就已经习惯使用INotifyPropertyChanged了 - 因此他们可能会因为必须使用MvvmCross Xaml 绑定扩展来获得在 Xaml 中绑定的字段而感到困惑。(这种混乱对他们是好是坏取决于你的世界观!)

于 2013-07-21T15:16:46.030 回答