Infragistics ultrawingrid柱选择器和柱式过滤器

时间:2011-03-03 12:11:20

标签: c# .net winforms infragistics ultrawingrid

我有一个Infragistics UltraWinGrid,我正在使用它的内置列选择器。

但是,如果用户在特定列上有过滤器,然后隐藏该列,则过滤器仍会应用于数据。

我希望如果列被隐藏,那么它的过滤器应该不再适用或者我应该至少能够以某种方式设置它。

我看了,找不到这样做的方法。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

隐藏列时,会触发UltraWinGrid.AfterColPosChanged事件。事件参数不会告诉您哪个列的位置已更改(即隐藏),因此最简单的方法是迭代列并清除任何隐藏列的过滤器。

private void grid_AfterColPosChanged(object sender, AfterColPosChangedEventArgs e)
{
    foreach (UltraGridBand band in grid.DisplayLayout.Bands)
    {
       foreach (ColumnFilter filter in band.ColumnFilters)
       {
            if (filter.Column.Hidden)
            {
                filter.ClearFilterConditions();
            }
       }
   }
{

笨拙,但它确实有效。

答案 1 :(得分:-2)

处理列隐藏;只需将Column.Hidden绑定到您的对象并执行您需要做的任何事情。