2011-05-19 30 views
0

私はコントロールテンプレートに苦しんでいます。私は現在、より基本的なコントロールから基本的に構築されたいくつかのペインを持つUIを構築しています。ここWPFテンプレート内のコントロールにアクセスしてデフォルト値を提供する方法は?

は、私たちの建設ペインの一つは、今のように見える方法は次のとおりです。あなたはそれが本当にだテンプレートから見ることができるように

<ControlTemplate x:Key="StringCtrl" TargetType="ContentControl"> 

    <Grid Margin="5"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="auto" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <TextBlock Name="ctrlText" Margin="0,0,5,0" Text="{TemplateBinding Content}"></TextBlock> 
     <TextBox Name="ctrlDefaultValue" Grid.Column="1" /> 
    </Grid> 
</ControlTemplate> 

<Grid> 

    <StackPanel> 

     <ContentControl Template="{StaticResource ConstructionBorderCtrl}"> 
      <ContentControl Template="{StaticResource StringCtrl}" Content="Cash Event Value:"/> 
     </ContentControl> 

     <ContentControl Template="{StaticResource ConstructionBorderCtrl}"> 
      <ContentControl Template="{StaticResource RateCtrl}"></ContentControl> 
     </ContentControl> 

     <ContentControl Template="{StaticResource ConstructionBorderCtrl}"> 
      <ContentControl Grid.Row="0" Template="{StaticResource FromCtrl}"></ContentControl> 
     </ContentControl> 

     <ContentControl Template="{StaticResource ConstructionBorderCtrl}"> 
      <ContentControl Grid.Row="0" Template="{StaticResource StartEndDateCtrl}"></ContentControl> 
     </ContentControl> 

     <ContentControl Template="{StaticResource ConstructionBorderCtrl}"> 
      <ContentControl Grid.Row="0" Template="{StaticResource ComboStringCtrl}">Applicable Size:</ContentControl> 
     </ContentControl> 

    </StackPanel> 

</Grid> 

は、ここでは一例としてStringCtrlためのテンプレートですラベルとテキストボックス。ここでは、テキストボックスにデフォルト値を指定し、ユーザー入力の検証を実行するとしますが、親コンストラクトペインからそのコンテキストを指定し、テンプレート内の個々の要素にバインドしたいとします。それをどうやってやりますか?

+0

はあなたが間違った方向に行っているように私に感じます。なぜこのためにテンプレートを使用していますか?モジュラーデザインを作成しようと思っているのであれば、UserControlsを使用してください。 –

答えて

1

これはこれまでに一度も見たことのないデザインです。 UserControlsやその他のカスタムコントロールの方が、ControlTemplateのアプローチよりもうまくいくと思います。

しかし、このルートを下りたいと思ったら、あなたの構造/テンプレートに一貫性があるならば、私はあなたのために働く行動を見ることができます - あなたは行動のプロパティを設定することができ、その子オブジェクトの値を設定して検証を行うことができるように、そのAssociatedObjectプロパティを介して制御します。

私には多くの仕事があるようです。

+0

これはちっちゃいデザインなので、通常のユーザーコントロールを使用するように切り替えました。入力仲間に感謝します! – Steve

関連する問題