wpf - 在不使用 INotifyPropertyChange 的情况下从头开始实现 MVVM?

标签 wpf silverlight mvvm

为什么 MVVM 必须使用 INotifyPropertyChange、ICommand 等来实现,因为它看起来如此复杂 MVVM - Presentation Model in Flex vs Presentation Model in Silverlight: advantages and disadvantages? ?为什么不从头开始做,把事情做的更简单呢?

最佳答案

请记住,在 Flex 中,它们实现与 INotifyPropertyChanged 几乎完全相同的模式。您需要它来告诉 UI 进行更新。唯一的区别是在 Flex 中,您会得到 [Bindable]为您实现模式的标签。在 Silverlight 中,您必须自己做。您可以获得实现它的帮助,例如使用“Property Weaver”,但在这两种情况下,您都有一个事件和一个看起来像这样的模式(伪代码):

var prop;
get: return prop
set: if prop == value return
     prop = value
     notify prop changed

至于命令,它与 Flex 与 Silverlight 中的命令式与声明式绑定(bind)有关。您不需要 Flex 中的命令,因为您可以简单地在上下文中调用方法。在 Silverlight 中,它是声明性的,因此您需要绑定(bind)一个对象……您不能绑定(bind)到方法,因为它们不是对象。 ICommand给你...但也增加了凌乱的管道。

关于wpf - 在不使用 INotifyPropertyChange 的情况下从头开始实现 MVVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5612263/

相关文章:

c# - MVVM - 绑定(bind)自定义对象 - 在 UI 上更新问题

WPF MVVM - 存储库模式查询

wpf - 表用户控件不显示

wpf - Windows 8 XAML 多列文本

silverlight - Silverlight Image Clipping 如何工作?

c# - 在 WP7 上释放 Application.GetResourceStream 返回的底层 Stream

iOS:如何使用 MVVM 将模型从 View 模型传递到 View 模型?

c# - WPF 中的像素着色器效果

wpf - 对象发送者在 RelayCommand 中始终为空

silverlight - ScrollViewer 中的 TextBlock 问题