将可用项目部分中的所有项目添加到Devexpress布局控制?

时间:2012-02-13 06:59:53

标签: c# wpf layout devexpress

我尝试使用Devexpress Layout-Control(适合服装使用)。因此,我希望通过代码将Available-Item Section中存在的所有项目作为Layout-Item添加到Layout-Control根目录中。

所以必须有可能, But How? (我不知道,任何解决方案;)

修改1 抱歉第一次提供的信息较少

让我解释一下我在我的例子中做了什么,我使用代码在Form-Loaded Event的Layout-Control中创建一个或多个Control。

之后在一个Button_Click中,我使用:

 Layout1.WriteToXML(XmlWriter_Object);

保存 Layout Current View 。这一步很好用!如果我想使用此命令在下一步恢复该视图:

 Layout1.ReadFromXML(XmlReader_Object);

结果我得到了可用项目部分中的所有项目(通过代码创建)!所以这是我的问题!

为什么会出现这种情况?

  

Ps:XmlReader_Object和XmlWriter_Object都引用了machin上的相同文件。

1 个答案:

答案 0 :(得分:7)

要将项目从Available Items列表移动到LayoutControl,请执行以下操作。

1)从LayoutControl.AvailableItems集合中删除项目:

layoutControl1.AvailableItems.Remove(item1);

2)将此项添加到布局中。例如,您可以使用以下代码将项目附加到组:

layoutGroup1.Children.Add(item1);

更新Edit1:

在动态创建布局项目(在代码中)时,必须使用RegisterName方法注册其标识符(名称)。代码可以如下所示:

LayoutItem layoutItem1 = new LayoutItem()
{
    Name = "Item1",
    Label = "Item1",
    Content = new Button()
    {
        Content = "Button"
    }
};
RegisterName(layoutItem1.Name, layoutItem1);
layoutGroup1.Children.Add(layoutItem1);

这样,一切都应该按预期工作。