在wpf中获取所选的单选按钮

时间:2013-12-30 17:11:24

标签: c# .net wpf

在WinForms中,我使用了面板对单选按钮进行分组,然后使用此代码来获取所选的单选按钮

var checkedValue = panelMyPanel.Controls.OfType<RadioButton>()
                        .FirstOrDefault(r => r.Checked);

现在我想把它翻译成wpf,在xaml里面我添加了单选按钮

 <RadioButton GroupName="myGroup" Name="Option1" Content="option one" IsChecked="True"  Width="40"/>
 <RadioButton GroupName="myGroup" Name="Option2" Content="option two" IsChecked="False" Width="80"/>
 <RadioButton GroupName="myGroup" Name="Option3" Content="option three" IsChecked="False" Width="60"/>

如何知道后面的代码中选择了哪个无线电btn?

1 个答案:

答案 0 :(得分:6)

几乎相同,假设这些是stackPanels的子代,它将是这样的:

<StackPanel x:Name="panel">
  <RadioButton/>
  <RadioButton/>
  <RadioButton/>
</StackPanel>

代码:

var checkedValue = panel.Children.OfType<RadioButton>()
                 .FirstOrDefault(r => r.IsChecked.HasValue && r.IsChecked.Value);

由于单选按钮IsChecked属性为可空的bool ,因此您需要先检查HasValue然后再检查Value