WPFパンダのコレクションを作ること、すなわち一つだけが一度に展開し、独占的に「拡張」
-
23-08-2019 - |
質問
私は「パンダ」の項目のグループを含むリストボックスを持っている、と私は何をしたいのは、排他的にそれらのそれぞれのためIsExpanded
プロパティを作るです。私はListBox
で10頭のパンダを持っている場合たとえば、私は一つだけが一度に開くことにしたいと思います。
ここで私がこれまで持っているものです。
<Window>
<Window.Resources>
<DataTemplate x:Key="NormalTemplate">
<Expander Margin="0" IsExpanded="True" Header="{Binding Model.Name}" Background="Green">
<Grid>
<StackPanel HorizontalAlignment="Stretch">
<TextBlock Text="{Binding Model.Description}" TextWrapping="Wrap" HorizontalAlignment="Stretch" Margin="0"/>
</StackPanel>
</Grid>
</Expander>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Groups}"
ItemTemplate="{DynamicResource NormalTemplate}"
/>
</Grid>
</Window>
これを実行する方法はありますか?私は一体、ListBox
または実際にパンダに結び付けられていないよ - それは変更する必要がある場合、私はそれのいずれかに関連付けられていないよ。
解決
何がExpander
が展開されているかどうかを決定しますか?それは選択だ場合、あなたはIsExpanded
のIsSelected
プロパティにListBoxItem
プロパティをバインドすることができます:
<Expander IsExpanded="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" ...>
他のヒント
所属していません StackOverflow