【发布时间】:2016-08-26 07:43:03
【问题描述】:
我想知道如果我在命令执行方法中放置一个逻辑来调用通过参数传递给它的回调方法,是否违反了 MVVM 模式?
例如:
public void MyCommandExecute(object arg)
{
if(arg is System.Action)
{
(arg as System.Action)(); //this action will do any logic about the view
}
}
【问题讨论】:
-
能否为您的问题添加一些代码。但是如果你的回调可以实现 inotifypropertychanged 并更新视图,这听起来不像。
-
@StuartSmith 代码已添加。
-
您应该拥有一个视图可以绑定到的属性(带有更改通知),而不是将回调作为命令参数传递。命令执行方法只会设置该属性。
-
我想知道这种回调有什么问题。实施将非常简单。我知道我可以更改属性并在视图中处理 propertychanged 事件。 @克莱门斯
-
@Mohammadamin Khayat 根据 MVVM,您需要通过引发 PropertyChanged 事件来通知视图。您可以为视图模型类实现 INotifyPropertyChanged 接口。我认为您并不完全了解 MVVM 模式。这种类型的回调也是可能的。但是,将视图和数据分开的更好设计取决于您。