获取组中选定 RadioButton 的索引 [英] Getting the index of the selected RadioButton in a group

查看:19
本文介绍了获取组中选定 RadioButton 的索引的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have got a reference to a RadioButton rb1.
How can I get the index of the selected RadioButton in rb1's group ?
I have googled for a while but without success.

Any help will be greatly appreciated

解决方案

If you got to this point then there is probably something wrong with your design and you should reconsider it.

that being said you could traverse the visual tree and find it like this:

        /// 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;
        }

then go over the children and find the checked 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;
    }

这篇关于获取组中选定 RadioButton 的索引的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆