0

我正在使用 MVVM(模型、视图、视图模型)设计模式编写 C# 应用程序。

我有一个UserControl叫ucDesigner。这是UserControl主窗口内唯一的。以下代码是文件 ucDesigner.xaml.cs 中 ucDesigner 的构造函数的定义:

public ucDesigner()
{
    InitializeComponent();
    DesignerViewModel designerVM = new DesignerViewModel();
    DataContext = designerVM;
}

上面的代码创建了一个新的 DesignerViewModel 并将其设置为DataContextucDesigner 视图的。

以下代码是 DesignerViewModel 的定义:

public class DesignerViewModel : ViewModelBase
{
    public DrawViewModel DrawVM { get; set; }

    public ToolboxViewModel ToolboxVM { get; set; }

    public DesignerViewModel()
    {
        DrawVM = new DrawViewModel();
        ToolboxVM = new ToolboxViewModel();
    }
}

DesignerViewModel 的构造函数创建一个新的 DrawViewModel 并将其分配为 DesignerViewModel 中 DrawVM 属性的值。

ucDesigner 有一个ContentPresenter显示DataTemplateucDraw 视图(UserControl 类型)的 with。以下代码来自 ucDesigner.xaml:

<ContentPresenter Grid.Row="1" Name="DrawingArea" Content="{Binding DrawVM}">
    <ContentPresenter.Resources>
        <DataTemplate DataType="{x:Type vm:DrawViewModel}">
            <uc:ucDraw />
        </DataTemplate>
    </ContentPresenter.Resources>
</ContentPresenter>

我希望使用ContentPresenter.

4

0 回答 0