or
<
telerikDocking:RadDocking
>
<
telerikDocking:RadDocking.DocumentHost
>
<
telerikDocking:RadSplitContainer
>
<
telerikDocking:RadPaneGroup
Regions:RegionManager.RegionName
=
"Body"
>
</
telerikDocking:RadPaneGroup
>
</
telerikDocking:RadSplitContainer
>
</
telerikDocking:RadDocking.DocumentHost
>
</
telerikDocking:RadDocking
>
<
Window
x:Class
=
"MasterDetailPerformance.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Height
=
"360"
Width
=
"760"
>
<
Grid
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"369"
/>
<
ColumnDefinition
Width
=
"369"
/>
</
Grid.ColumnDefinitions
>
<
StackPanel
Grid.Column
=
"0"
Margin
=
"10"
Height
=
"300"
Width
=
"350"
>
<
TextBlock
Text
=
"Telerik RADGridView:"
/>
<
telerik:RadGridView
x:Name
=
"TelerikMasterGrid"
AutoGenerateColumns
=
"False"
ShowGroupPanel
=
"False"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Name}"
Width
=
"200"
/>
</
telerik:RadGridView.Columns
>
<
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:GridViewTableDefinition
/>
</
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:RadGridView.HierarchyChildTemplate
>
<
DataTemplate
>
<
telerik:RadGridView
x:Name
=
"TelerikDetailGrid"
ItemsSource
=
"{Binding Details}"
AutoGenerateColumns
=
"False"
ShowGroupPanel
=
"False"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Name}"
Width
=
"200"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
DataTemplate
>
</
telerik:RadGridView.HierarchyChildTemplate
>
</
telerik:RadGridView
>
</
StackPanel
>
<
StackPanel
Grid.Column
=
"1"
Margin
=
"10"
Height
=
"300"
Width
=
"350"
>
<
TextBlock
Text
=
"Microsoft DataGrid (click row to expand, ctrl-click to collapse):"
/>
<
DataGrid
x:Name
=
"MicrosoftMasterGrid"
AutoGenerateColumns
=
"False"
RowDetailsVisibilityMode
=
"VisibleWhenSelected"
>
<
DataGrid.Columns
>
<
DataGridTextColumn
Binding
=
"{Binding Name}"
Header
=
"Name"
Width
=
"200"
/>
</
DataGrid.Columns
>
<
DataGrid.RowDetailsTemplate
>
<
DataTemplate
>
<
DataGrid
x:Name
=
"MicrosoftDetailsGrid"
AutoGenerateColumns
=
"False"
ItemsSource
=
"{Binding Details}"
>
<
DataGrid.Columns
>
<
DataGridTextColumn
Binding
=
"{Binding Name}"
Width
=
"200"
/>
</
DataGrid.Columns
>
</
DataGrid
>
</
DataTemplate
>
</
DataGrid.RowDetailsTemplate
>
</
DataGrid
>
</
StackPanel
>
</
Grid
>
</
Window
>
public
partial
class
MainWindow : Window
{
private
IList<Master> masterList =
new
List<Master>();
public
MainWindow()
{
InitializeComponent();
FillMasterList();
TelerikMasterGrid.ItemsSource = masterList;
MicrosoftMasterGrid.ItemsSource = masterList;
}
private
void
FillMasterList()
{
for
(
int
index = 0; index < 2; ++index )
{
masterList.Add(
new
Master()
{
ID = index,
Name = index.ToString(),
Details = GetDetails()
} );
}
}
private
IList<Detail> GetDetails()
{
IList<Detail> details =
new
List<Detail>();
for
(
int
index = 0; index < 1000; ++index )
{
details.Add(
new
Detail() { ID = index, Name = index.ToString() } );
}
return
details;
}
}
public
class
Master
{
public
int
ID {
get
;
set
; }
public
string
Name {
get
;
set
; }
public
IList<Detail> Details {
get
;
set
; }
}
public
class
Detail
{
public
int
ID {
get
;
set
; }
public
string
Name {
get
;
set
; }
}