J'utilise un contrôle d'onglet WPF pour présenter des instances répétées séparées d'un contrôle utilisateur. c'est-à-dire Tab1 pour les paramètres Item1, Tab2 pour les paramètres Item2, et ainsi de suite.Contrôles utilisateur WPF sur des onglets séparés: pourquoi le nom de groupe radiobutton est-il partagé entre les onglets?
Il semble que les noms des groupes de boutons radio soient partagés entre les onglets. Que se passe-t-il? Exemple:
Une fenêtre contient des onglets. Chaque onglet contient un contrôle utilisateur.
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:lib="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300">
<Grid>
<TabControl Margin="0,0,0,100" Name="tabControl1">
<TabItem Header="tabItem1" Name="tabItem1">
<lib:UserControl1 x:Name="userControlInTab1" />
</TabItem>
<TabItem Header="tabItem2" Name="tabItem2">
<lib:UserControl1 x:Name="userControlInTab2" />
</TabItem>
</TabControl>
</Grid>
Le contrôle utilisateur est simplement deux boutons radio dans un groupe:
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="50" Width="100">
<StackPanel>
<RadioButton GroupName="Group1" Name="radiobutton1" Content="option1" IsChecked="True" />
<RadioButton GroupName="Group1" Name="radiobutton2" Content="option2" />
</StackPanel>
Si vous exécutez cette application, vous verrez que seul le radiobutton1 dans le deuxième onglet est vérifié, malgré le contrôle userc qui le définit pour toujours être vérifié au démarrage. De plus, le réglage d'un radiobutton comme vérifié dans le code semble décocher tous les boutons radio dans les autres onglets!
Il semble que les choses se comportent bien sous le contrôle de la souris (c'est-à-dire que les onglets sont indépendants). Enfin, les commandes usercontrol semblent être des instanciations séparées. J'ai essayé cela avec des curseurs sur les contrôles utilisateur, par exemple, et ils se comportent indépendamment entre les onglets. Comme ils devraient.
Merci pour l'aide de tout le monde avec ceci. J'ai cherché largement en vain. Je ne suis sûrement pas la seule personne à avoir eu ce problème. J'utilise VS2008.
Les travaux. Merci. La propriété groupname semble donc totalement inutile et vous pouvez toujours séparer les radiobuttons en conteneurs ... – Daniel
Exactement. Vous auriez seulement besoin de GroupName si vous voulez grouper RadioButtons dans le même conteneur. Mais même alors, vous pouvez les mettre dans une bordure vide ou similaire. –
Que faire si vous voulez que deux boutons radio sous différents conteneurs soient dans le même groupe? Par exemple. vous avez deux boutons radio dans un panneau de pile différent (pour une raison quelconque) mais vous voulez en sélectionner un seul à la fois? – digitguy