提到的控件来自DevExpress
框架。
我使用TabControl
并且在tab pages
内我始终显示相同的GridControl
(更改其父级)。为了给出一个想法,每个选项卡都是一个不同的文件,网格显示了它的一些内容。
无论如何,我的想法是,我可以简单地扩展标签,为每个标签添加GridView
,并为数据源添加BindingList
并交换MainView
+ {{只要选择了点按页面,就会在主DataSource
上显示1}}。
到目前为止一切正常。
但是,GridControl
上应用的过滤器/列已应用于每个Grid
(全局),而这似乎存储在GridView
上。
长话短说,有没有办法保持过滤/列分类单独 每个 GridControl
,或者每次切换选项卡时,我都必须以编程方式存储过滤器/列排序?
也许这甚至是愚蠢的,我应该使用多个GridView
与他们自己的GridControls
各自或不同的东西?
答案 0 :(得分:1)
我对如何做到这一点有两点想法。
这种方法的缺点是你可能会丢失一些设计时功能,或者不得不破解它们,例如创建一个具有网格的虚拟表单并从中构建单例。
SelectedPageChanged
的{{1}}事件中,您将获得XML并将其应用于该网页的网格。以下是#2的示例:
用于存储当前布局的文件名的公共属性。假设这是一个名为XtraTabbedMdiManager
的静态类:
Globals
更改布局后,您需要捕获当前布局XML并使用全局文件名保存:
private static string _CurrentLayoutFile = Path.GetTempFileName();
public static string CurrentLayoutFile
{
get { return _CurrentLayoutFile; }
}
在private void gridView1_Layout(object sender, EventArgs e)
{
gridView1.SaveLayoutToXml(Globals.CurrentLayoutFile);
}
事件中,指定已保存的布局:
SelectedPageChanged
答案 1 :(得分:0)
好吧,得到了我想要的东西。由于某些其他依赖项,我决定为每个GridControl
创建一个TabPage
,因此每个都有自己的过滤器/查找/排序列,它将会记住"。
仍然感兴趣,如果这是常见的方式,或者有更好的解决方案。 : - )