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

时间:2010-11-22 05:54:58

标签: c# wpf user-controls mvvm

我需要在运行时向窗口添加用户控件。现在我的问题是我需要首先实例化窗口然后将用户控件添加到该窗口。毕竟这个窗口只会显示

我的想法是:

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

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

     var userControl = Activator.CreateInstance(Type.GetType(managedClassName));

然后创建窗口:

     NavigationWindow navigationWindow = new NavigationWindow();

然后将用户控件添加到窗口。

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

我不知道我是否以正确的方式接近它。所以,如果它错了,请指出我正确的方向。

由于

2 个答案:

答案 0 :(得分:1)

您正在使用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,然后调用了适当的方法来通知UI

答案 1 :(得分:0)

如果要使用NavigationWindow,则应使用添加用户控件的页面。首先创建Page,然后将Page.Content设置为用户控件,然后使用Navigate(page)导航到此页面。