2

ウィンドウに Graph というユーザー コントロールがあるとします。このユーザー コントロールにはグリッドが含まれており、その中にツールバーという別のユーザー コントロールがあります。現在、Graph は ModeProperty という依存関係プロパティをバッキング ストアとして使用する Mode というパブリック プロパティを公開しています。Toolbar ユーザー コントロールの要素を、その祖先グラフの Mode プロパティにバインドする必要があります。これどうやってするの?Graph への参照を取得するだけでも、思ったよりも難しいことがわかっています。this.parent は、Graph ではなくグリッドへの参照を取得します。

4

1 に答える 1

7

このようにのみxamlでバインドできます-

<Toolbar Mode="{Binding Path=Mode, RelativeSource={RelativeSource
      Mode=FindAncestor, AncestorType = UserControl, AncestorLevel =2}}"/>

また、次のようにバインディングで ElementName を使用することもできます -

<Toolbar Mode="{Binding Path=Mode, ElementName=GraphUserControl}"/>

バインド先の userControl に x:Name プロパティを設定する必要があります -

<UserControl x:Name="GraphUserControl"></UserControl>

または、コード ビハインドでやらない場合は、祖先の親に移動するためのこの便利な投稿を見ることができます - Visual Tree Navigator

于 2012-07-19T14:24:20.717 に答える