Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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# WPF数据模板和viewModel的自动创建对象_C#_Wpf_Mvvm_Datatemplate - Fatal编程技术网

C# WPF数据模板和viewModel的自动创建对象

C# WPF数据模板和viewModel的自动创建对象,c#,wpf,mvvm,datatemplate,C#,Wpf,Mvvm,Datatemplate,我想在我的WPF应用程序中实现导航(使用MVVM模式)。 存在以下视图模型: MainViewModel:包含功能区的应用程序的“框架” 委托人视图模型:必须显示在 “框架” RecipientViewModel:另一个“子”视图 为了让WPF决定在“框架”中显示哪个视图,我使用了在App.xaml中声明的DataTemplates,如下所示: <Application x:Class="MyProject.App" xmlns="http://sche

我想在我的WPF应用程序中实现导航(使用MVVM模式)。 存在以下视图模型:

  • MainViewModel:包含功能区的应用程序的“框架”
  • 委托人视图模型:必须显示在 “框架”
  • RecipientViewModel:另一个“子”视图
为了让WPF决定在“框架”中显示哪个视图,我使用了在App.xaml中声明的DataTemplates,如下所示:

<Application x:Class="MyProject.App"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:viewModels="clr-namespace:MyProject.ViewModels"
                xmlns:views="clr-namespace:MyProject"
                StartupUri="MainWindow.xaml">
    <Application.Resources>
        <BooleanToVisibilityConverter x:Key="BoolToVis"/>
        <DataTemplate DataType="{x:Type viewModels:ConsignorViewModel}">
            <views:ConsignorUC />
        </DataTemplate>
        <DataTemplate DataType="{x:Type viewModels:RecipientViewModel}">
            <views:RecipientUC />
        </DataTemplate>
    </Application.Resources>
</Application>

现在我的孩子视图是委托人视图。创建新的委托人UC时,将创建委托人ViewModel的新对象。因此,我必须创建不同的委托人视图模型对象,但我应该只有一个。

您的问题实际上在这里:

<UserControl.DataContext>
    <local:ConsignorViewModel />
</UserControl.DataContext>

使用这种方法,您可以将子视图的
DataContext
设置为窗口视图模型的
CurrentViewModel
属性的值。

您的问题实际上是:

<UserControl.DataContext>
    <local:ConsignorViewModel />
</UserControl.DataContext>

使用这种方法,您可以将子视图的
DataContext
设置为窗口视图模型的
CurrentViewModel
属性的值。

您的问题实际上是:

<UserControl.DataContext>
    <local:ConsignorViewModel />
</UserControl.DataContext>

使用这种方法,您可以将子视图的
DataContext
设置为窗口视图模型的
CurrentViewModel
属性的值。

您的问题实际上是:

<UserControl.DataContext>
    <local:ConsignorViewModel />
</UserControl.DataContext>

使用这种方法,可以将子视图的
DataContext
设置为窗口视图模型的
CurrentViewModel
属性的值。

为什么要更改标题?你的问题中没有关于多线程的内容,所以标题有点混乱。对不起,我以为有不同的“线程”。情况似乎并非如此。希望新标题更好。你为什么要更改标题?你的问题中没有关于多线程的内容,所以标题有点混乱。对不起,我以为有不同的“线程”。情况似乎并非如此。希望新标题更好。你为什么要更改标题?你的问题中没有关于多线程的内容,所以标题有点混乱。对不起,我以为有不同的“线程”。情况似乎并非如此。希望新标题更好。你为什么要更改标题?你的问题中没有关于多线程的内容,所以标题有点混乱。对不起,我以为有不同的“线程”。情况似乎并非如此。希望新标题更好。非常感谢。这就是解决办法。我不知道这种可能性,所以必须深入研究XAML。非常感谢。这就是解决办法。我不知道这种可能性,所以必须深入研究XAML。非常感谢。这就是解决办法。我不知道这种可能性,所以必须深入研究XAML。非常感谢。这就是解决办法。我不知道这种可能性,必须深入研究XAML。