1. ホーム
  2. wpf

[解決済み] WPFでトグルボタンのグループをラジオボタンのように動作させるには?

2022-07-09 19:08:57

質問

トグルボタンのように動作し、ラジオボタンのように動作し、同時に1つのボタンだけを選択/押下することができるボタンのグループがあります。それはまた、どのボタンも選択されていない/押されていない状態を持つ必要があります。

動作は、ゼロまたは1つのツールがいつでも選択されている、Photoshop ツールバーのようなものになるでしょう!

これが WPF でどのように実装されるのか、何かアイデアはありますか?

どのように解決するのですか?

最も簡単な方法は、ListBox の ItemTemplate に ToggleButton を使用するようにスタイルを設定することです。

<Style TargetType="{x:Type ListBox}">
    <Setter Property="ListBox.ItemTemplate">
        <Setter.Value>
            <DataTemplate>
                <ToggleButton Content="{Binding}" 
                              IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}"
                />
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

そして、ListBoxのSelectionModeプロパティを使って、SingleSelectとMultiSelectを処理することができます。