2017-01-08 18 views
0

私はPageを持っており、異なるDataContext(View Model)を動的に受け取ります。現在のDataContextビューモデルに基づいて動的にビューを選択する

DataTemplateswitch/case形式で使用して、現在のコンテキストに基づいて適切なビューをレンダリングする方法を理解できません。

<DataTemplate DataType="{x:Type LocalViewModels:ABC}"> 
    <LocalViews:ABC/> 
</DataTemplate> 

をそれらを置くためにどのような容器に把握することはできません。

私は、私はこのような複数のDataTemplatesを持っていることを想像します。一度に1つだけレンダリングされるので、ListBoxはわかりません。

答えて

1

あなたは、単にテンプレートビューを作成するために、ウィンドウのDataContextABCのインスタンスを割り当てることができますウィンドウ

<Window.Resources> 
    <DataTemplate DataType="{x:Type local:ABC}"> 
     <Border BorderThickness="2" BorderBrush="Red"> 
      <TextBlock Text="{Binding Text}"/> 
     </Border> 
    </DataTemplate> 
</Window.Resources> 
<StackPanel> 
    <ContentControl Content="{Binding}"/> 
</StackPanel> 

次のXAMLを考えます。

class ABC 
{ 
    public string Text { get; set; } 
} 

... 
public MainWindow() 
{ 
    InitializeComponent(); 

    DataContext = new ABC { Text = "Hello, World." }; 
} 

すべての詳細はここにある:Data Templating Overview

+0

ご理解いただきありがとうございます –

関連する問題