4

I created Check Box dynamically inside a wrap panel in wpf. How to find the checked check box in code behind.

2
  • 2
    Can you please add relevant code? Commented Apr 7, 2016 at 9:23
  • 2
    As long as you name the checkbox, you should be able to find it easily Commented Apr 7, 2016 at 9:25

3 Answers 3

4

If you want a more compact not reusable and specialized version..

WrapPanel wp = new WrapPanel();
for (int i = 0; i < 10; i++)
{
    CheckBox chb = new CheckBox();
    chb.Name = string.Format("Id{0}", i);
    wp.Children.Add(chb);
}

foreach (CheckBox el in wp.Children)
{
    if (el.Name == "Id3")
    {
        return el;
    }
}
Sign up to request clarification or add additional context in comments.

Comments

1
/// <summary>
/// Finds a Child of a given item in the visual tree. 
/// </summary>
/// <param name="parent">A direct parent of the queried item.</param>
/// <typeparam name="T">The type of the queried item.</typeparam>
/// <param name="childName">x:Name or Name of child. </param>
/// <returns>The first parent item that matches the submitted type parameter. 
/// If not matching item can be found, 
/// a null parent is being returned.</returns>
public static T FindChild<T>(DependencyObject parent, string childName)
    where T : DependencyObject
{
    // Confirm parent and childName are valid. 
    if (parent == null) return null;

    T 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
        T childType = child as T;
        if (childType == null)
        {
            // recursively drill down the tree
            foundChild = FindChild<T>(child, childName);

            // If the child is found, break so we do not overwrite the found child. 
            if (foundChild != null) break;
        }
        else if (!string.IsNullOrEmpty(childName))
        {
            var frameworkElement = child as FrameworkElement;
            // If the child's name is set for search
            if (frameworkElement != null && frameworkElement.Name == childName)
            {
                // if the child's name is of the request name
                foundChild = (T)child;
                break;
            }
        }
        else
        {
            // child element found.
            foundChild = (T)child;
            break;
        }
    }

    return foundChild;
}

Comments

1

If you are looking for the text of the selected checkbox do somthing like thes:

         private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
       string a =checkBox1.Text;
    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.