如何为MVVM中的视图提供带返回值的回调

时间:2016-08-27 20:07:39

标签: c# wpf mvvm user-controls mvvm-light

假设我有一个带有一些自定义代码隐藏逻辑的WPF UserControl。现在视图必须执行需要由用户确认的操作,但是显示对话框 - 由MVVMLight定义 - 从我的ViewModel触发,如下所示:

bool result = await DialogService.ShowMessage("Message", "Title", "Yes", "No", null);

...如果用户点击“是”,则result为真。现在我的问题是:如何将ViewModel的回调结果发送到我的视图?

我想到了两个选择:

  1. 我可以创建一个依赖属性来获取最终被调用的Func<bool>,但这似乎太过于hacky。
  2. 也许在我的视图中实现的逻辑太复杂了,我应该将它提取到视图之外的类。此对象的单个实例将“存活”在我的ViewModel中,并通过Dependency Property绑定到视图。但是我在这里违反了MVVM模式吗?

0 个答案:

没有答案