2016-04-07 55 views
0

我的數據模型具有枚舉類型的屬性。我想知道是否有辦法根據枚舉類型的值動態地放置用戶控件?Grid的動態內容

我目前正在調查在以下方向:

<Grid Name ="AdjustmentsArea" DockPanel.Dock ="Right" MinWidth ="100" Visibility ="Collapsed" > 
    <ContentControl DataContext ="{Binding AjustmentView}"> 
     <Style TargetType ="model:AjustmentViews"> 
      <Style.Triggers> 
       <DataTrigger Binding ="{Binding}" Value ="Settings"> 
        /// is it possible in principle to point a user control using a Setter ??? 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ContentControl> 
</Grid> 

也可我是一個錯誤的道路上。但我想知道(學習)是否有可能通過動態實現這個requiremet創建一個用戶控件的實例,但不使用hide/show exised元素方法。 你會推薦什麼?

回答

2

您可以根據觸發綁定值設置不同的模板

<ContentControl DataContext ="{Binding AjustmentView}"> 
<ContentControl.Style> 
<Style TargetType ="ContentControl"> 
<Style.Triggers> 
<DataTrigger Binding="{Binding}" Value ="Settings"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate> <!--template with UserControl here--> </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</DataTrigger> 
</Style.Triggers> 
</Style> 
</ContentControl.Style> 
</ContentControl> 

例如當方向改變(水平或垂直)時,WPF Slider使用這種方法

+0

不幸的是,有一個錯誤:「成員」Template「無法識別或無法訪問」

+0

@YaugenVlasau,我的意思是應該應用於ContentControl的樣式 – ASh

+0

感謝您提供最新的代碼更新。凝結,清晰,有效! –