Tout d'abord je veux excuser mon anglais. Ce que je veux réaliser semble très simple mais je suis un peu perdu dans la mise en œuvre.ToggleButtons dans ItemsControl lié à une ObservableCollection
Contexte: J'ai une collection observable de contacts. ces contacts ont tous 1 ou plusieurs ContactRoles. Je lie les contacts à la source d'éléments d'un ItemsControl et je veux qu'un ToggleButton pour chaque rôle dans le contact soit affiché.
Question: Ma première question est comment puis-je aller d'une liste de contacts avec des rôles à un grand nombre de ToggleButtons à l'écran. La deuxième question que j'ai est si je clique sur un ToggleButton tous les autres boutons qui ont le même contact doivent être vérifiés aussi bien. Si je clique sur un autre bouton à bascule appartenant à un autre contact, tous les boutons cochés doivent être décochés et les boutons appartenant au nouveau contact doivent être vérifiés.
Que dois-je maintenant: Ce que j'est maintenant un ItemsControl dans un ItemsControl et ItemsControl interne, il est itemtemplate est l'impression des ToggleButtons regardent un code ci-dessous:
<Button Content="Add" Width="72" Height="27" Command="{Binding Path=AddContact}" VerticalAlignment="Top"/>
<ItemsControl ItemsSource="{Binding Path=Contacts}" IsTabStop="False" Name="Parent">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding ContactRoles}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ToggleButton Content="{Binding}" CommandParameter="{Binding ElementName=Parent, Path=DataContext.Item}" Template="{StaticResource toggleButtonTemplateButtonBar}"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.ViewContact}" Height="27" MinWidth="100">
</ToggleButton>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Cette partie du code est en train de montrer. J'espère que quelqu'un peut m'aider avec ça.
D'autres questions que j'ai est Dois-je faire un contrôle personnalisé qui hérite de ItemsControl ou cela peut-il être fait par des modèles et des styles?
Si vous avez besoin de plus d'informations faites le moi savoir.
Merci, Jordy
EDIT:
Je suis désolé, je n'étais pas si claire à formuler mes questions. pour revenir sur vous commenter. La ItemsSource du premier ItemsControl contient une liste avec des contacts uniques, la ItemsSource de la seconde contient une liste de chaînes (rôles) appartenant à ce contact. Je veux montrer un ToggleButton pour chaque rôle de tous les contacts. Mais je pense que vous avez invité cela à partir de mon codeexample.
Cette image montre ce que je suis en train de faire. J'espère que cela rend la chose plus claire.
Il n'est pas si clair quels problèmes vous avez avec votre code actuel. Il semble afficher correctement les rôles de contact. En ce qui concerne votre deuxième scénario (lorsque vous décochez quelque chose), il sera plus facile de comprendre ce que vous voulez réaliser si vous fournissez un exemple de scénario – Snowbear