我正在使用 MVVM(模型、视图、视图模型)设计模式编写 C# 应用程序。
我有一个UserControl
叫ucDesigner。这是UserControl
主窗口内唯一的。以下代码是文件 ucDesigner.xaml.cs 中 ucDesigner 的构造函数的定义:
public ucDesigner()
{
InitializeComponent();
DesignerViewModel designerVM = new DesignerViewModel();
DataContext = designerVM;
}
上面的代码创建了一个新的 DesignerViewModel 并将其设置为DataContext
ucDesigner 视图的。
以下代码是 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
显示DataTemplate
ucDraw 视图(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
.