2016-04-07 71 views
0

私のデータモデルは、列挙型のプロパティを持っています。列挙型の値に基づいてユーザーコントロールを動的に配置する方法があるのだろうか?グリッドの動的コンテンツ

私は現在、次の方向に調査しています:

<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> 

も私が間違ったパスの午前ことができます。しかし、私は知っている(学ぶ)ことが可能である場合は、ユーザーコントロールのインスタンスを作成するが、非表示/表示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スライダは、向きが変わるとき(水平または垂直)

+0

Unfortunatellyにエラーがあります:「

+0

@YaugenVlasauで、メンバー "Template"が認識されないかアクセスできません。 ContentControlに適用するスタイル – ASh

+0

最新のコード更新をありがとう。凝縮器、クリア、作品! –

関連する問題