在WPF中获取选定的单选按钮

7

在WinForms中,我使用panel来对单选按钮进行分组,然后使用以下代码获取所选单选按钮:

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"/>

如何在代码后台知道哪个单选按钮被选中?
1个回答

17

几乎相同,假设它们是 stackPanel 的子元素,那么它将是这样的:

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

代码:

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

由于单选按钮IsChecked属性是可空布尔值(nullable bool),因此您需要先检查HasValue,然后再检查Value


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接