我试图使模式对话框窗口,让用户知道一些错误消息,或让用户编辑一些值。
我正在使用MVVM模式,因此我的主窗口包含一些控制部分和工作区部分。在工作空间部分中,我将使用datatemplate紧密打开 View 模型(定义为用户控件)。从这些 View 之一,我想打开模式对话框窗口。我正在关注这个答案Error window show modal in MVVM WPF。如该答案所述,我已经在InvoiceViewModel中实现了DialogClass。但是我对显示模态窗口的内容有疑问。如果将窗口的内容设置为ViewModel类,则输出是带有该ViewModel命名空间路径的简单文本。 (将ViewModel附加到带有datatemplate的View上。)如果我将内容设置为View-它正在工作-显示了View,但是我不遵守MVVM模式(从ViewModel打开View时,因为ViewModel没有对View的引用)。
ErrorViewModel newErrorViewModel = new ErrorViewModel();
ErrorView newErrorView = new ErrorView();
DialogWindow dialogWindow = new DialogWindow();
//Not Working
//dialogWindow.Content = newErrorViewModel;
//Working But, breaking MVVM
dialogWindow.Content = newErrorView;
dialogWindow.ShowDialog();
在ErrorView.xaml中,我已附加了这样的ErrorViewModel。
<DataTemplate DataType="{x:Type vm:ErrorViewModel}">
<vw:ErrorView/>
</DataTemplate>
我究竟做错了什么?
谢谢。
最佳答案
您正在将newErrorView分配给对话框的内容,而不是newErrorViewModel
关于wpf - 具有MVVM模式的模态窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4491129/