使用AutoWireViewModel =“ True”时,是否可以在xaml中引用VM

时间:2019-01-30 19:17:18

标签: wpf xaml mvvm prism mahapps.metro

如您所见,我正在尝试一种新方法来显示MVVM中MahApp.Metro的自定义对话框。

我无法直接在VM中引用MahApps.Metro.Controls.Dialogs以便使用 dialogCoordinator.ShowMetroDialogAsync(..., BaseMetroDialog dialog, ...), 因为BaseMetroDialog是一个UI元素(破坏了MVVM)。

因此,我尝试在xaml中定义我的自定义对话框,然后通过ShowMetroDialogAsync调用ObjectDataProvider。但是我不知道如何引用DataContext(the VM)作为第一个参数传递给ObjectDataProvider.MethodParameters

image

触发器ObjectDataProvider的按钮:

image

1 个答案:

答案 0 :(得分:1)

显示对话框的服务没有问题。这样,视图模型就不知道该视图,并且您不需要过于复杂的xaml构造。

或者您可以使用带有交互请求的棱镜的内置弹出系统。