当列移动时,UltraGrid VisiblePosition不会更改

时间:2017-04-03 09:27:12

标签: c# infragistics

我有一个c#项目,在这个项目中我有一个带有ultragrid的对话框。网格有3组,每组有4列以上。 Columns of the Ultragrid

我可以移动列并更改​​列的顺序。一切正常。最后,我想保存列的定义,如果列是隐藏的和列的位置。

我遍历列列表并保存column.Hidden属性和column.Header.VisiblePosition属性。问题是visiblePosition值与网格中的位置不匹配,您可以在UI中看到。

我向左右移动了一些列,但visiblePosition与开头相同。用户界面显示每列的正确顺序,列位置已更改,但属性值未发生变化。

可能存在问题,因为我使用的是columnGroups。

谢谢

1 个答案:

答案 0 :(得分:3)

UltraWinGrid有两种解决此类问题的方法 它们是SaveAsXml类中的LoadFromXmlDisplayLayout

您可以使用它们来保存和恢复网格的布局 例如,在表单的Dispose事件中,您可以添加对

的调用
public void SaveLayout(UltraGrid grd, string layoutFile)
{
    if (grd.DataSource != null)
        grd.DisplayLayout.SaveAsXml(layoutFile, PropertyCategories.All);
}

在网格的InitializeLayout事件中,您可以使用

恢复布局
public void LoadLayout(UltraGrid grd, string layoutFile)
{
    if (File.Exists(layoutFile))
        grd.DisplayLayout.LoadFromXml(layoutFile, PropertyCategories.All);
}

根据您的具体需求,您可以微调PropertyCategories枚举,以便仅选择要保存/恢复的属性组。