以下は、現在持っているXAMLです。私はトグルボタンを持つことによってツリーをエミュレートしたいと思うし、リストビューはトグルボタンのチャッキング状態への可視性をバインドする。問題は、私は兄弟の子供にバインドする必要があります。これも可能ですか?WPF - 相対パスを使用したコントロールへのバインドSelf.Sibling.Child
トグルが祖先ではないため、このコードは機能しません。
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<ToggleButton Name="tglBtn">+</ToggleButton>
<TextBlock>test</TextBlock>
</StackPanel>
<ListView Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}, Path=IsChecked, Converter={StaticResource boolToVis}}">
<ListView.View>
<GridView>
<GridViewColumn Header="Thread" DisplayMemberBinding="{Binding thread_name}" />
<GridViewColumn Width="Auto" Header="Created" DisplayMemberBinding="{Binding thread_created}" />
<GridViewColumn Width="Auto" Header="Modified" DisplayMemberBinding="{Binding last_modified}" />
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
elementnameを使用するつもりでしたが、同じ名前のすべてのトグルにバインドすると思っていましたが、試してみましたが、うまく動作します。 –
ええ、私たちがDataTemplateの中で使って以来、そう考えているかもしれません:)しかし、通常のUserControlを考えて、ElementName Bindingをもう一度考えてみましょう。しかし、同じusercontrolがアプリケーションで何度もインスタンス化されることがあります。したがって、各DataTemplateのインスタンスには、それをカバーする独自のスコープがあります(私は思います!) –
これが動作する限り、私はこの時点で不注意に@ジョビー!ありがとう。 –