Инфраструктурный отборщик колонок ultrawingrid и фильтры колонок

У меня есть Infragistics UltraWinGrid, и я использую его встроенный инструмент выбора столбцов.

Однако существует проблема, из-за которой, если у пользователя есть фильтр для определенного столбца, а затем он скрывает этот столбец, фильтр по-прежнему применяется к данным.

Я ожидаю, что если столбец скрыт, его фильтр больше не должен применяться ИЛИ я должен, по крайней мере, как-то установить это.

Я смотрел и не могу найти способ сделать это. Есть идеи?


person Iain Holder    schedule 03.03.2011    source источник


Ответы (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();
            }
       }
   }
{

Коряво, но работает.

person Iain Holder    schedule 04.03.2011

Обработка скрытия столбца; просто привяжите Column.Hidden к своему объекту и делайте все, что вам нужно.

person Dmitry Karpezo    schedule 03.03.2011
comment
Да, я знаю, как кодировать. У вас есть конкретный пример с ультравингридом? Где мне обрабатывать скрытие столбца? Какое событие? Я не вижу того, кого увольняют. - person Iain Holder; 03.03.2011
comment
Насколько я знаю, это не событие, но свойство (.Hidden) изменяется, когда пользователь выбирает столбец в средстве выбора столбца, и если вы привязываете свойство к своему объекту, вы можете обрабатывать показ/скрытие столбцов - person Dmitry Karpezo; 03.03.2011