【发布时间】:2011-03-03 12:11:19
【问题描述】:
我有一个 Infragistics UltraWinGrid,我正在使用它的内置列选择器。
但是存在一个问题,即如果用户在特定列上有过滤器,然后隐藏该列,过滤器仍会应用于数据。
我希望如果该列被隐藏,那么它的过滤器应该不再适用,或者我至少应该能够以某种方式设置它。
我已经看过但找不到这样做的方法。有什么想法吗?
【问题讨论】:
标签: c# .net winforms infragistics ultrawingrid
我有一个 Infragistics UltraWinGrid,我正在使用它的内置列选择器。
但是存在一个问题,即如果用户在特定列上有过滤器,然后隐藏该列,过滤器仍会应用于数据。
我希望如果该列被隐藏,那么它的过滤器应该不再适用,或者我至少应该能够以某种方式设置它。
我已经看过但找不到这样做的方法。有什么想法吗?
【问题讨论】:
标签: c# .net winforms infragistics ultrawingrid
当列被隐藏时,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();
}
}
}
{
笨拙,但它有效。
【讨论】:
处理列隐藏;只需将Column.Hidden 绑定到您的对象,然后做任何您需要做的事情。
【讨论】: