【发布时间】:2015-05-24 07:56:14
【问题描述】:
我有一个绑定到可观察集合的选项卡控件。每个选项卡显示一个单选按钮组。当标签更改时,出于某种原因,它取消了所选的单选按钮。
可观察集合中的每个项目都为其自己的选项卡存储选定的单选按钮。我相信这意味着他们不能互相干扰。我还认识到每个组只能选择一个单选按钮。然而,每个选项卡都在其自己的组中。为什么选项卡改变时选中的单选按钮会改变?
XAML
<TabControl x:Name="MainTabControl" >
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding TabName}"></TextBlock>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<RadioButton x:Name="RadioButtonX"
Grid.Column="0"
VerticalAlignment="Center"
Content="X"
IsChecked="{Binding XChecked}" />
<RadioButton x:Name="RadioButtonY"
Grid.Column="1"
VerticalAlignment="Center"
Content="Y"
IsChecked="{Binding YChecked}" />
<RadioButton x:Name="RadioButtonZ"
Grid.Column="2"
VerticalAlignment="Center"
Content="Z"
IsChecked="{Binding ZChecked}" />
</Grid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
C#
public partial class MainWindow
{
public ObservableCollection<RadioButtonSettings> listOfButtonSettings { get; set; }
public MainWindow()
{
listOfButtonSettings = new ObservableCollection<RadioButtonSettings>
{
new RadioButtonSettings {TabName = "tab1"},
new RadioButtonSettings {TabName = "tab2"},
new RadioButtonSettings {TabName = "tab3"}
};
InitializeComponent();
MainTabControl.ItemsSource = listOfButtonSettings;
}
}
public class RadioButtonSettings
{
public string TabName { get; set; }
public bool XChecked { get; set; }
public bool YChecked { get; set; }
public bool ZChecked { get; set; }
public RadioButtonSettings()
{
XChecked = true;
}
}
【问题讨论】:
标签: c# wpf radio-button tabcontrol