检查是否在网格上添加了元素

时间:2014-06-04 12:15:07

标签: c# wpf user-controls grid

我在类中包含UserControl当满足某些条件时,我初始化UserControl并将其添加到Grid中,根据位置设置行和列属性列表中的类。当我改变那个位置时,我需要更新Grid上元素的位置,但是因为不是每个类都初始化并添加了UserControl,所以我需要检查我在{{1}中订购元素的时间}。 要检查Grid是否已初始化,请检查它是否为空 UserControl

如何检查classElement.userControl == null是否已添加到UserControl

1 个答案:

答案 0 :(得分:1)

实现您的要求的最简单方法可能是让您使用Grid属性简单地遍历Children的子项,依次检查每个子项。你可以这样做:

<Grid Name="YourGrid">
    ...
</Grid>

...

foreach (UIElement uiElement in YourGrid.Children)
{
    if (uiElement.GetType() == typeof(UserControl))
    {
        if (uiElement != null)
        {
            // Do something with your control here
        }
    }
}

更新&gt;&gt;&gt;

我不明白你的评论...你说我需要一种方法来了解用户控件是否在网格中 ...这正是我提供给你的。如果您要将UserControl添加到Grid,那么您必须引用Grid。如果您有Grid的引用,那么您可以像我向您展示的那样迭代已添加到Grid的控件。如果您要从UserControl代码中添加UserControl,那么您可以执行此操作:

foreach (UIElement uiElement in YourGrid.Children)
{
    if (uiElement.GetType() == typeof(UserControl))
    {
        if (uiElement != null)
        {
            if (uiElement == this)
            {
                // this UserControl is in the Grid
            }
        }
    }
}

如果这不能解决您的问题,那么请花时间提供一个体面的问题描述,以便我建议修复它。根据我目前的理解,这个是你的修复。