我有一个 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 不同。有谁知道我怎样才能让滚动条显示在扩展的网格上?我需要这个的原因是扩展的网格可能包含数百个项目,如果它很大,构建网格需要几秒钟。我在想,使用行虚拟化和滚动条,它会快得多。