PlT*_*lor 0 wpf modal-dialog mvvm
从使用MVVM模式创建的WPF对话框中获取值的最佳方法是什么.我当前的代码涉及获取ViewModel并从中获取适当变量的额外步骤.我想避免这一步,因为它似乎有些无关紧要.
private void OpenDataSeriesWindow()
{
var addVehicle = new AddResultsSeries();
addVehicle.ShowDialog();
AddResultsSeriesViewModel tempViewModel = (AddResultsSeriesViewModel)addVehicle.DataContext;
PlotVariables.Add(tempViewModel.NewSelectedVariable);
}
Run Code Online (Sandbox Code Playgroud)
我通常这样做:
想要显示对话框的ViewModel为特定对话框构造CustomDialogViewModel.它还可以使用初始参数设置ViewModel.
View提供了一个显示对话框的界面.例如,如果我有一个CustomViewModel,CustomWindow将实现ICustomView,它被注入到CustomViewModel的构造函数中.ICustomView将提供一种方法ShowCustomDialog(CustomDialogViewModel dialogViewModel)
.
ViewModel在View界面上调用ShowDialog方法.当调用返回时,它可以使用DialogViewModel上的属性来查看结果.
这使得ViewModel与特定的View实现很好地分离,并允许您在单元测试时注入模拟IView.这允许您编写测试,以检测已使用预期参数打开对话框并相应地提供结果.
归档时间: |
|
查看次数: |
2421 次 |
最近记录: |