在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?
答案 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
。