繁体   English   中英

如何从已定义的单选按钮组中找到选定的单选按钮

[英]How can I find selected radiobutton from defined group of radiobutton

我用了4个单选按钮,并为所有按钮定义了一组。 我想在该组中查找所选单选按钮的文本。 如何为此编写代码。 谢谢

通过修改了一下这个帖子,你会得到你想要的

如该帖子所述,将此类添加到您的项目中

public static class VisualTreeEnumeration 
{ 
   public static IEnumerable<DependencyObject> Descendents(this DependencyObject root) 
   { 
     int count = VisualTreeHelper.GetChildrenCount(root); 
     for (int i=0; i < count; i++) 
     { 
       var child = VisualTreeHelper.GetChild(root, i); 
       yield return child; 
       foreach (var descendent in Descendents(child)) 
         yield return descendent; 
     } 
   } 
} 

这将给您想要的结果

List<RadioButton> group = this.Descendents()
                               .OfType<RadioButton>()
                               .Where(r => r.GroupName == "aaa" && r.IsChecked == true)
                               .ToList();

从MSDN的RadioButton类

以下示例显示了两个面板,每个面板包含三个单选按钮。 每个面板中的一个单选按钮组合在一起。 每个面板上其余的两个单选按钮未明确分组,这意味着它们被分组在一起,因为它们共享相同的父控件。 当您运行此示例并选择单选按钮时,TextBlock将显示组的名称,或者不带显式组名的单选按钮“分组到面板”和单选按钮的名称。

XAML

<TextBlock Text="First Group:"  Margin="5" />
<RadioButton x:Name="TopButton" Margin="5" Checked="HandleCheck"
     GroupName="First Group" Content="First Choice" />
<RadioButton x:Name="MiddleButton" Margin="5" Checked="HandleCheck"
     GroupName="First Group" Content="Second Choice" />
<TextBlock Text="Ungrouped:" Margin="5" />
<RadioButton x:Name="LowerButton" Margin="5" Checked="HandleCheck"
    Content="Third Choice" />
<TextBlock x:Name="choiceTextBlock" Margin="5" />

背后的代码

private void HandleCheck(object sender, RoutedEventArgs e)
{
    RadioButton rb = sender as RadioButton;
    choiceTextBlock.Text = "You chose: " + rb.GroupName + ": " + rb.Name;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM