2017-01-08 61 views
0

我有一個Page,它將動態地接收不同的DataContext(視圖模型)。如何根據當前DataContext視圖模型動態選擇視圖

我不知道如何使用DataTemplate時尚,以基於當前上下文呈現適當的視圖。

我會想象我將有多個的DataTemplates這樣的:

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

但在什麼容器想不通把他們。一次只能渲染其中一個,所以ListBox對我沒有意義。

回答

1

給定一個窗口

<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你可以簡單的ABC實例分配給窗口的DataContext創建模板視圖。

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

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

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

所有的細節在這裏:Data Templating Overview

+0

感謝您的耐心等待 –

相關問題