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
C# 如何在运行时将用户控件添加到窗口?_C#_Wpf_User Controls_Mvvm - Fatal编程技术网

C# 如何在运行时将用户控件添加到窗口?

C# 如何在运行时将用户控件添加到窗口?,c#,wpf,user-controls,mvvm,C#,Wpf,User Controls,Mvvm,我需要在运行时向窗口添加一个用户控件。现在我的问题是,我需要先实例化窗口,然后将用户控件添加到该窗口中。所有这些之后,只会显示窗口 我的想法是: 首先创建用户控件的实例: string managedClassName = "SupplierModule.Views.SupplierInvoiceView, SupplierModule"; var userControl = Activator.CreateInstance(Type.GetType(managedClas

我需要在运行时向窗口添加一个用户控件。现在我的问题是,我需要先实例化窗口,然后将用户控件添加到该窗口中。所有这些之后,只会显示窗口

我的想法是:

首先创建用户控件的实例:

     string managedClassName = "SupplierModule.Views.SupplierInvoiceView, SupplierModule";

     var userControl = Activator.CreateInstance(Type.GetType(managedClassName));
然后创建窗口:

     NavigationWindow navigationWindow = new NavigationWindow();
然后将用户控件添加到窗口中

所以我的问题是,如何将这个用户控件添加到窗口中

我不知道我是否以正确的方式处理它。因此,如果这是错误的,请告诉我正确的方向


谢谢

您正在使用WPF和MVVM

1-在Xaml中定义以下代码

<ContentControl
            Margin="10,0"
            Grid.Column="1"
            HorizontalAlignment="Stretch"
            VerticalAlignment="Stretch"
            Content="{Binding TableDetailsDataFormView}"/>

2-在ViewModel中定义TableDetailsDataFormView属性

3-在创建ViewModel时指定属性TableDetailsDataFormView


4-我假设您已实现INotifyPropertyChanged,然后调用appropiate方法通知UI

如果要使用
导航窗口
,则应使用添加用户控件的页面。首先创建一个
页面
,然后将
页面.内容
设置为用户控件,然后使用
导航(页面)
导航到此页面。

我的导航窗口位于我现在创建它的解决方案中的另一个项目中。我无法访问窗口中的任何方法或属性有什么原因吗?