提问者:小点点

如何以编程方式创建ModelView?


我已经用Datacontext ViewModel创建了xaml对象。

如何以编程方式创建它,而不是在XAML中创建它?

<Window.Resources>
    <local:CreateMultiPaneStockChartsViewModel x:Key="ViewModel" />
</Window.Resources>
<Grid x:Name="Grid">
    <local:CreateMultiPaneStockCharts DataContext="{StaticResource ViewModel}" />
</Grid>

或者如何以编程方式绑定datacontext?


共1个答案

匿名用户

后面的代码:

var view = new CreateMultiPaneStockCharts
{
    DataContext = Resources["ViewModel"]
}

Grid.Children.Add(view);

使用WPF数据模板的概念,您将创建一个DataTemplate资源,该资源自动应用于适当的视图模型类型,如:

<Window.Resources>
    <DataTemplate DataType="{x:Type local:CreateMultiPaneStockChartsViewModel}">
        <local:CreateMultiPaneStockCharts />
    </DataTemplate>
</Window.Resources>

如果将视图模型实例分配给(例如)ContentControl的Content属性,或者将ItemControl的ItemsSource属性分配或绑定到视图模型实例集合,则会自动应用DataTemplate。