RadioButton rb1 への参照を取得しました。
rb1 のグループで選択した RadioButton のインデックスを取得するにはどうすればよいですか?
私はしばらくグーグルで検索しましたが、成功しませんでした。
どんな助けでも大歓迎です
RadioButton rb1 への参照を取得しました。
rb1 のグループで選択した RadioButton のインデックスを取得するにはどうすればよいですか?
私はしばらくグーグルで検索しましたが、成功しませんでした。
どんな助けでも大歓迎です
この時点に到達した場合は、おそらく設計に問題があるため、再検討する必要があります。
ビジュアルツリーをトラバースして、次のように見つけることができると言われています。
/// Returns the first GroupBox ancester
public DependencyObject FindAncestor(DependencyObject current)
{
current = VisualTreeHelper.GetParent(current);
while (current != null)
{
if (current is GroupBox)
{
return (T)current;
}
current = VisualTreeHelper.GetParent(current);
};
return null;
}
次に、子を調べて、チェックされた radioButton を見つけます
public RadioButton FindChild<T>(DependencyObject parent)
{
// Confirm parent and childName are valid.
if (parent == null) return null;
RadioButton foundChild = null;
int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < childrenCount; i++)
{
var child = VisualTreeHelper.GetChild(parent, i);
// If the child is not of the request child type child
var childType = child as radioButton;
if (childType == null)
{
// recursively drill down the tree
foundChild = FindChild(child);
// If the child is found, break so we do not overwrite the found child.
if (foundChild != null) return foundChild ;
}
else if (childName.IsChecked == true)
{
return foundChild;
}
}
return null;
}