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

时间:2011-03-14 12:15:12

标签: c# silverlight

我取了4个radiobuttons并为所有人定义了一组。我想在该组中找到所选放射性按钮的文本。如何为此编码。谢谢

2 个答案:

答案 0 :(得分:2)

通过修改位This帖子,您将得到您想要的内容

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

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();

答案 1 :(得分:2)

From MSDN's RadioButton Class

  

以下示例显示了两个面板   每个包含三个单选按钮。   每个面板都有一个单选按钮   组合在一起。剩下的两个   每个面板上的单选按钮不是   明确分组,这意味着他们   由于他们共享,因此归为一组   相同的父控件。当你跑步   这个样本并选择一个单选按钮,   TextBlock显示的名称   组,或“分组到面板”的a   没有明确组的单选按钮   名称和收音机的名称   按钮。

<强> 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;
}