[英]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();
以下示例顯示了兩個面板,每個面板包含三個單選按鈕。 每個面板中的一個單選按鈕組合在一起。 每個面板上其余的兩個單選按鈕未明確分組,這意味着它們被分組在一起,因為它們共享相同的父控件。 當您運行此示例並選擇單選按鈕時,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.