У меня есть WPF GridView
, и часть данных должна отображаться в итоговых значениях (как в нижнем колонтитуле, так и в группе), но не в фактических записях данных.
Я думал, что будет легко написать триггер и скрыть строку на основе данных строки, однако оказалось, что Telerik GridView
использует необычную панель для виртуализации, поэтому, хотя указанные строки скрываются, остается пустое место там, где они должен идти.
Вот мой нынешний стиль. Он скрывает строку, но это эквивалентно созданию видимости Hidden
вместо Collapsed
(скрывает элемент, но оставляет пробел там, где он есть)
<Style TargetType="{x:Type telerik:GridViewGroupRow}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Group.Key, RelativeSource={RelativeSource Self}}" Value="SomeValue">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
Я попытался установить для ItemTemplate значение null, удалить элемент из GridViewVirtualizingPanel Telerik и настроить видимость, но ни один из этих параметров не работает.
Кто-нибудь знает, как я мог бы это сделать? Я либо хочу скрыть (и свернуть) строки на основе триггера, либо найти способ получить запрос текущего сгруппированного выражения, чтобы я мог запросить вторую коллекцию и отобразить результаты в итоговой группе. У меня нет проблем с использованием Code-Behind или чего-то хакерского для достижения этой цели.
Изменить
Интересно отметить, что я могу установить высоту равной 1, но не 0. Даже 1 — это слишком много, поскольку я могу скрыть тысячи записей, и на экране останется огромная белая область.
GridViewVirtualizingPanel
, который является пользовательским элементом управления Telerik, отображающим пробелы для свернутых элементов строки. - person Rachel   schedule 10.11.2011