これは、WPF で複雑なコントロールを開発するときによく遭遇する問題です。
一部のプロパティを複数レベルの親にバインドしたいと考えています。
私は現在、これを RelativeSource と TemplatedParent で使用しています:
Value="{Binding PropertyToBind, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
しかし、これで、直接の親にバインドするだけで済み、4 つのレベルを持っています。
オブジェクトの 4 つのレベルを削除できません。それらは複雑なコントロールです...
たとえば、最初のレベルはジョイスティック コントロールです。私のジョイスティックには、上下に移動するスライダー コントロール (第 2 レベル) があります。私の Slider には、 Button ( 3rd level ) があります。ボタンには、レベル 1 (ジョイスティック) のプロパティにバインドするテキスト (第 4 レベル) があります。
私がしていることは、テキストをボタンのプロパティにバインドしてから、ボタンのプロパティをスライダーのプロパティにバインドするなど、ジョイスティックにバインドすることです。場合によっては、カスタム コントロールを作成する必要があります (バインドできるプロパティを追加します)。
これは私のシナリオではなく、単なる例です (はい、これではおそらくいくつかのレベルを削除できますが、私の場合はそうではありません) 私は答えを望んでいません: これまたはこのオブジェクトを削除します...
複数のレベルに直接バインドする方法はありますか? 各レベルは Style の ControlTemplate です。
WPF 4、.NET 4.0、Blend 4、Visual Studio 2010 を使用しています