检查是否创建了UserControl的实例

时间:2014-05-29 08:28:33

标签: c# wpf list user-controls grid

我正在使用一个包含一些属性和我创建的2个UserControl的类;它们代表UI的两个不同部分。我以这种方式构建了类,以确保每次类的对象发生更改时,UI都会分为两部分进行更新。

控件放在不同的网格中,它们在网格中的位置取决于列表中类的位置。

为了避免浪费资源,我只在需要时创建UserControl的实例(我只需要将类的图形部分添加到列表中,否则属性就足够了。)

这种方式有时会出现错误,因为软件会尝试修改尚未实例化的UserControl,从而导致异常。

这是破解代码的示例:

for (int i = 0; i < ListRouter.LRouter.Count(); i++)
{
    ListRouter.LRouter[i].Knob.SetPosition(i);
    ListRouter.LRouter[i].SensorMenu.SetPosition(i);
}

在尝试将索引传递给UserControl之前,我应该做哪些检查?

当我尝试设置UserControl的行和列时也一样,但尚未添加到网格中。我尝试用这个检查来解决这个问题:

if (LogicalTreeHelper.GetParent(r.Knob) != null)
{
    Grid.SetRow(r.Knob, r.Knob.GridRow);
    Grid.SetColumn(r.Knob, r.Knob.GridColumn);
}

这还够吗?有更好的解决方案吗? 感谢

0 个答案:

没有答案