Как я могу найти выбранную радиокнопку из определенной группы радиокнопок? - PullRequest
0 голосов
/ 14 марта 2011

Я взял 4 радиокнопки и определил одну группу для всех.И я хочу найти текст выбранной радиокнопки в этой группе.Как код для этого.спасибо

Ответы [ 2 ]

2 голосов
/ 14 марта 2011

Из класса радиокнопок MSDN :

В следующем примере показаны две панели которые содержат три переключателя каждый. Одна радиокнопка от каждой панели сгруппированы вместе. Оставшиеся два радио кнопки на каждой панели не сгруппированы явно, что означает, что они сгруппированы вместе, так как они разделяют тот же родительский контроль. Когда ты бежишь этот образец и выберите переключатель, TextBlock отображает имя группа или "сгруппированы в панель" для переключатель без явной группы имя и название радио кнопка.

1010 * 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;
}
2 голосов
/ 14 марта 2011

Изменив немного Этот пост, вы получите то, что вы хотите

Как говорится в этом посте, добавьте этот класс в свой проект

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...