Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVVM之后创建WPF视图时向ViewModel传递数据_C#_Wpf_Mvvm - Fatal编程技术网

C# 在MVVM之后创建WPF视图时向ViewModel传递数据

C# 在MVVM之后创建WPF视图时向ViewModel传递数据,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在创建一个新的窗口类型视图,我打算在应用程序遇到异常时显示信息,我想为不同的异常显示不同的信息 因为我使用的是MVVM,所以我想在ViewModel中添加一个构造函数,该构造函数接受异常并根据异常的类型决定显示什么 但是,我使用“ShowDialog”显示这个新窗口,因此我不知道如何将异常从主窗口的ViewModel传递到新窗口。而不是在子窗口的代码隐藏或XAML中创建私有视图模型实例,在调用ShowDialog之前,只需将适当初始化的视图模型对象传递给窗口的DataContext: var

我正在创建一个新的窗口类型视图,我打算在应用程序遇到异常时显示信息,我想为不同的异常显示不同的信息

因为我使用的是MVVM,所以我想在ViewModel中添加一个构造函数,该构造函数接受异常并根据异常的类型决定显示什么


但是,我使用“ShowDialog”显示这个新窗口,因此我不知道如何将异常从主窗口的ViewModel传递到新窗口。

而不是在子窗口的代码隐藏或XAML中创建私有视图模型实例,在调用ShowDialog之前,只需将适当初始化的视图模型对象传递给窗口的DataContext:

var childWindow = new ChildWindow();
childWindow.DataContext = new ChildViewModel(whatever); // pass data here
childWindow.ShowDialog();
或更短:

var childWindow = new ChildWindow
{
    DataContext = new ChildViewModel(whatever) // pass data here
};
childWindow.ShowDialog();

在调用ShowDialog之前,只需将适当初始化的视图模型对象传递给窗口的DataContext,而不是在子窗口的代码隐藏或XAML中创建私有视图模型实例:

var childWindow = new ChildWindow();
childWindow.DataContext = new ChildViewModel(whatever); // pass data here
childWindow.ShowDialog();
或更短:

var childWindow = new ChildWindow
{
    DataContext = new ChildViewModel(whatever) // pass data here
};
childWindow.ShowDialog();