【问题标题】:Common Interfaces for MVVMMVVM 的通用接口
【发布时间】:2013-02-18 07:37:45
【问题描述】:

如果我错过了一些有用的界面,谁能告诉我?还有缺点吗?

对于模型:

  • IEditableObject
  • IClonable
  • INotifyPropertyChanging, INotifyPropertyChanged 如果后端有一些模型更新
  • ???

对于 ViewModel:

  • INotifyPropertyChanging
  • INotifyPropertyChanged
  • IDataErrorInfo
  • IDisposable
  • ???

对于视图:

  • ??? (我听说过IView (DataContext {set;})

【问题讨论】:

    标签: c# mvvm interface


    【解决方案1】:

    是的,您拥有框架本身提供的所有通用接口。这些应该足以让您成为 MVVM 忍者!

    如果您需要其他任何东西,我建议您在需要时创建自己的接口。

    关于一般接口,请参阅我回答的这个相关问题:

    I'm worried I'm adding too many interfaces

    如果我创建一个IView 接口,我会不会引用我的类 只有那个界面?即是否会有我交互的上下文 我的班级纯粹是通过接口公开的单一属性来实现的吗?

    另外,您能否考虑一下您将与多个人互动的环境? 这个IView 接口的实现?

    如果这两个问题的答案都是“否”,那么界面 没有什么用处。

    【讨论】:

    • 同意。特别是 viewmodel 应该有自己的接口,所以它可以被改变,例如一些设计数据或测试
    • 你觉得IView这个接口有用吗?
    • @Boas Enkler 你能提供一些例子吗?
    • @BoasEnkler 看到我更新的答案,你不应该只是为了他们而创建接口!具有单一、不可互换实现的接口毫无用处!
    • 是的,你的权利。但至少使用 designTimeData 和/或测试视图你有所需的目的:)
    【解决方案2】:

    在 MVVM (ViewModel) 中创建 RelayCommand 是一种常见的做法,您必须在其中实现 ICommand。

    【讨论】:

    • 谢谢,但我只想知道 Model、ViewModle 和 View
    猜你喜欢
    • 2011-01-31
    • 2014-08-28
    • 2010-10-03
    • 2019-07-11
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多