Заимствование (еще раз) моего VisualTreeEnumeration из этого ответа (мне действительно нужно вести блог): -
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;
}
}
}
Поместите это в файл в вашем основном пространстве имен или впространство имен утилит, для которого в вашем коде есть using
.
Теперь вы можете использовать LINQ для получения всевозможных полезных списков.В вашем случае: -
List<RadioButton> group = this.Descendents()
.OfType<RadioButton>()
.Where(r => r.GroupName == "MyGroupName")
.ToList();