アイテムが含まれる Telerik:RadGridView があり、その一部は展開可能です。行を展開可能にする決定は、行内のオブジェクトのタイプに基づいて IsExpandable フラグを設定することにより、RowLoaded イベントで行われます。これはうまくいきます。
行の展開を処理するために、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 とは異なります。スクロールバーを拡張グリッドに表示する方法を知っている人はいますか? これが必要な理由は、展開されたグリッドには数百のアイテムが含まれる可能性があり、グリッドが大きい場合はグリッドの構築に数秒かかるためです。行の仮想化とスクロール バーを使用すると、はるかに高速になると考えています。