【问题标题】:UltraGrid VisiblePosition not change when column moved当列移动时 UltraGrid VisiblePosition 不会改变
【发布时间】:2017-04-03 09:27:12
【问题描述】:

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

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

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

我左右移动了一些列,但是 visiblePosition 和开头一样。 UI 显示每列的正确顺序,列位置发生了变化,但属性的值没有改变。

也许问题存在是因为我使用了 columnGroups。

谢谢

【问题讨论】:

    标签: c# infragistics


    【解决方案1】:

    UltraWinGrid 有两种方法可以解决这类问题。
    它们是来自DisplayLayout 类的SaveAsXmlLoadFromXml

    您可以使用它们来保存和恢复网格的布局。
    例如,在表单的 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 枚举以仅选择要保存/恢复的属性组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多