簡體   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