2

RadioButton rb1 への参照を取得しました。
rb1 のグループで選択した RadioButton のインデックスを取得するにはどうすればよいですか?
私はしばらくグーグルで検索しましたが、成功しませんでした。

どんな助けでも大歓迎です

4

2 に答える 2

0

この時点に到達した場合は、おそらく設計に問題があるため、再検討する必要があります。

ビジュアルツリーをトラバースして、次のように見つけることができると言われています。

        /// 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;
    }
于 2013-06-13T09:02:28.447 に答える