Comment puis-je créer un ensemble de contrôles togglebutton qui se comportent comme des RadioButtons?

Je suis à l'aide de C# et WPF et en gros, je veux avoir quelques boutons à bascule et un seul d'entre eux peut être sélectionné en même temps.

J'ai trouvé une autre question à ce sujet, mais la solution montré qu'il ne fonctionne pas et je ne sais pas pourquoi.

Si j'essaie de le faire comme mentionné dans la question ci-dessus, le ItemTemplate de la ListBox n'est pas appliquée. Je ne vois pas les boutons de bascule dans la zone de liste, c'est plutôt présenté comme une "zone de liste normale".

Mon bouton à bascule de style ressemble à ça, contenue dans un de mes fichiers de ressources:

<Style x:Key="ToggleButtonListBox" 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>
    <Setter Property="ListBox.ItemsPanel">
        <Setter.Value>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" />
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="BorderThickness" Value="0" />
</Style>

Je tiens à ajouter les éléments directement dans le code XAML, donc mon code pour qui ressemblerait à quelque chose comme

<ListBox Style="{StaticResource ToggleButtonListBox}">
    <ListBoxItem>test1</ListBoxItem>
    <ListBoxItem>test2</ListBoxItem>
</ListBox>

Comment puis-je créer un tel ensemble de boutons?

OriginalL'auteur Sören | 2011-02-08