Ich verwende ein WPF-Tab-Steuerelement, um separate wiederholte Instanzen eines Benutzersteuerelements darzustellen. h. Tab1 für Item1-Einstellungen, Tab2 für Item2-Einstellungen und so weiter.WPF-Benutzer steuert auf separaten Registerkarten: Warum wird Radiobutton Gruppenname zwischen den Registerkarten freigegeben?
Es scheint, dass die Namen der Optionsfeldgruppen zwischen den Registerkarten gemeinsam genutzt werden. Was ist los?
Einfaches Beispiel:
Ein Fenster enthält Registerkarten. Jede Registerkarte enthält ein Benutzersteuerelement.
<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>
Die Steuer Benutzer ist einfach zwei Radiobuttons in einer Gruppe:
<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>
Wenn Sie diese App ausführen, werden Sie nur die radiobutton1 in der zweiten Registerkarte sehen, dass wird überprüft, obwohl der Benutzer es definiert, um beim Start immer überprüft zu werden.
Wenn Sie einen Radiobutton als eingecheckten Code festlegen, werden alle Radiobuttons in anderen Tabs deaktiviert!
Es sieht so aus, als würden sich die Dinge unter Mauskontrolle gut verhalten (d. H. Tabs sind unabhängig).
Schließlich scheinen die Benutzersteuerungen separate Instanziierungen zu sein. Ich habe dies beispielsweise mit Schiebereglern auf Benutzersteuerelementen versucht, und sie verhalten sich unabhängig voneinander über Registerkarten hinweg. Wie sie sollten.
Danke für die Hilfe von jemandem mit diesem. Ich habe weitgehend vergebens gesucht. Sicher bin ich nicht die einzige Person, die dieses Problem hatte. Ich verwende VS2008.
Das funktioniert. Vielen Dank. Also die Gruppenname Eigenschaft scheint völlig unnötig, und Sie können Radiobuttons immer in Container trennen ... – Daniel
Genau. Sie benötigen nur GroupName, wenn Sie RadioButtons in demselben Container gruppieren möchten. Aber selbst dann könntest du sie in einen leeren Rand oder ähnliches legen. –
Was, wenn zwei Radiobuttons unter verschiedenen Containern in derselben Gruppe sein sollen? Z.B. Sie haben zwei Optionsfelder in verschiedenen Stack-Panel (aus irgendeinem Grund), aber nur eines von ihnen auf einmal ausgewählt werden soll? – digitguy