У меня есть Telerik: RadGridView, в котором есть элементы, некоторые из которых можно расширять. Решение сделать строку расширяемой принимается в событии RowLoaded, устанавливая флаг IsExpandable в зависимости от типа объекта в строке. Это прекрасно работает.
Чтобы обработать расширение строки, у меня есть метод для обработки события DataLoading. Это выглядит так:
void AssignedNumbersGrid_DataLoading(object sender, GridViewDataLoadingEventArgs e)
{
GridViewDataControl dataControl = (GridViewDataControl)sender;
if (dataControl.ParentRow != null)
{
dataControl.ShowGroupPanel = false;
dataControl.AutoGenerateColumns = false;
dataControl.CanUserFreezeColumns = false;
dataControl.IsReadOnly = true;
dataControl.SelectionMode = System.Windows.Controls.SelectionMode.Extended;
dataControl.IsFilteringAllowed = false;
dataControl.ShowInsertRow = false;
dataControl.RowIndicatorVisibility = Visibility.Collapsed;
dataControl.ChildTableDefinitions.Clear();
dataControl.Margin = new Thickness(0, 0, 0, 0);
dataControl.EnableRowVirtualization = true;
dataControl.MaxHeight = 100;
ScrollViewer.SetVerticalScrollBarVisibility(dataControl, ScrollBarVisibility.Auto);
dataControl.Columns.Add(BuildSelectColumn());
dataControl.Columns.Add(BuildNewColumn("Range Number", "DisplayAssociatedInfo"));
dataControl.Columns.Add(BuildTypeColumn());
dataControl.Columns.Add(BuildRemarkColumn());
dataControl.Columns.Add(BuildNewColumn("Status", "DisplayStatus"));
}
}
Я добавил код, чтобы установить максимальную высоту, и прикрепленный просмотрщик прокрутки, но полоса прокрутки не отображается. объект dataControl имеет тип GridViewDataControl, который отличается от RadGridView. Кто-нибудь знает, как я могу получить полосу прокрутки, чтобы показать на расширенной сетке? Причина, по которой мне это нужно, заключается в том, что расширенная сетка может содержать несколько сотен элементов, и для ее построения требуется несколько секунд, если она большая. Я думаю, что с виртуализацией строк и полосой прокрутки это будет намного быстрее.