选择网格的“可见列选择器”机制

选择网格的“可见列选择器”机制

问题描述:

我正面临着这样的问题:需要选择一种机制,允许用户隐藏/显示DataGrid中的列。选择网格的“可见列选择器”机制

建议的方法之一是添加一个按钮(它看起来像一个列标题,但没有列)。当用户点击它时,列的列表出现,用户可以选择要隐藏/显示的列。但是有没有办法在网格中有这样的列(只是一个没有列作为例子的头部 - 你可能会在Mozilla Thunderbird中看到网格)?

另一种不太可能的方式是弹出列表,当鼠标悬停在DataGrid上时出现。但是这个清单很少会被使用。所以,这个闪烁的列表对于最终用户来说只是一个头痛的问题。

用鼠标点击的方法。我只是害怕,他们会被忽视,用户将有一个艰难的日子,而使用数十列的网格。

对此有何想法?有没有办法实现第一种方式,或者有更好的方法来解决这个问题?

也许这样会更好,如果我只是提供这个神奇的“标题没有列”的图片,以避免混淆。

网格中有一个可点击的列标题,但是它下面没有列。

dataGrid的滚动条上方有一些区域,它可能是放置此功能的正确位置。但似乎我不能使用它。

也许组合的方法 - 标题中的一些(小)x形按钮隐藏列和弹出列表(以某种方式调用)来恢复它。没有列的标题...这很奇怪,如果它们有很多,它还是很陌生。

编辑:您需要自定义标题项目渲染器。如果它呈现最后一个标题(应该能够通过“所有者”属性和列信息确定),它将显示列选择按钮。否则,它显示按钮以隐藏列。

+0

我提供了一些细节,使其更清楚.. >不知何故调用 这就是我正在寻找..谜“不知何故”) >如果有很多人 不 - 不..只是中1 ..我希望这幅图可以消除这种误解。 – Antenka 2010-11-11 14:25:01

+0

它可以在数据网格控件上创建。当然,它会封闭标题的一部分,所以标题必须为此而调整。不是很干净的解决方案,但很简单(如果你可以处理标题)。 – alxx 2010-11-11 14:37:56

+0

或者使其成为最后一个标题的一部分(无论如何您都必须更改标题)。 – alxx 2010-11-11 14:40:34