2016-07-03 15 views
0

私はカスタムコントロールを行っています。マルチバインド依存関係の問題

私は以下のような3つの依存性を持っています。 コントロールの高さ、幅、ユーザーが指定する範囲によっては、値を計算して をカスタムコントロールに表示する必要があります。

これらの3つの値をすべてバインドできるマルチバインドを使用しようとしていますが、マルチバリューコンバータはこの の計算を行い、適切な値を返します。

問題は、多値コンバータバインディングとしてこの値をスタイルにバインドすることを知らないということです。

依存関係プロパティ:

public static readonly DependencyProperty ControlHeightProperty = 
     DependencyProperty.Register("ControlHeight", typeof(double), typeof 
    (TestControl), new PropertyMetadata(150D)); 

    public double ControlHeight 
    { 
     get { return (double)GetValue(ControlHeightProperty); } 
     set { SetValue(ControlHeightProperty, value); } 
    } 

    public static readonly DependencyProperty ControlWidthProperty = 
     DependencyProperty.Register("ControlWidth", typeof (double), typeof 
    (TestControl), new PropertyMetadata(default(double))); 

    public double ControlWidth 
    { 
     get { return (double) GetValue(ControlWidthProperty); } 
     set { SetValue(ControlWidthProperty, value); } 
    } 

    public static readonly DependencyProperty RangeProperty = 
     DependencyProperty.Register("Range", typeof (double), typeof 
    (TestControl), new PropertyMetadata(default(double))); 

    public double Range 
    { 
     get { return (double) GetValue(RangeProperty); } 
     set { SetValue(RangeProperty, value); } 
    } 

スタイルは、(私が書いていない結合):私はelementNameが結合使って を行うことができますよりも、プロパティは同じスタイルで利用可能な場合。しかし、この場合は、高さと幅のために可能かもしれません。しかし範囲は、私は自分のスタイルにバインドする必要があり、直接依存関係プロパティ (私が意味する、私はバインディングのElementNameを行うことができます方法はありません)

<TextBlock Grid.Row="1"> 
          <TextBlock.Text> 
           <MultiBinding Converter="{StaticResource 
    CalculateConverter}"> 
            <Binding Path=""></Binding> 
            <Binding Path=""></Binding> 
            <Binding Path=""></Binding> 
           </MultiBinding> 
          </TextBlock.Text> 
         </TextBlock> 

で誰かが私を助けることができますか?

おかげ&よろしく、

答えて

0

あなたがRelativeSourceを使用してそれを行うことができます。

<Binding Path="Range" RelativeSource="{RelativeSource AncestorType=UserControl, Mode=FindAncestor}"></Binding>