In the hierarchical grid below, I have a self-referencial table that has the hieratchical data.
I cannot get the nested grid to display the same row colours as the outhermost nested grid.
I am trying to use the RowLoaded event to colour the rows, but it does not fire for the innermost
nested grids.
void
RadGridView1_RowLoaded(
object
sender, RowLoadedEventArgs e)
{
GridViewRow viewRow = e.Row
as
GridViewRow;
DataRow row = e.DataElement
as
DataRow;
//Employees employee = e.DataElement as Employees;
if
(row !=
null
&& row[
"ID"
] !=
null
)
{
long
ID = (
long
)row[
"ID"
];
viewRow.IsExpandable =
this
.HasSubordinates(ID);
if
(row[
"Status"
].ToString().Trim() ==
string
.Empty)
{
viewRow.Background = Brushes.Turquoise;
}
else
{
viewRow.Background = Brushes.Red;
}
}
}
<
telerik:RadGridView
x:Name
=
"RadGridView1"
RowLoaded
=
"RadGridView1_RowLoaded"
DataLoading
=
"RadGridView1_DataLoading"
Grid.ColumnSpan
=
"2"
LoadingRowDetails
=
"RadGridView1_LoadingRowDetails"
ColumnWidth
=
"*"
ItemsSource
=
"{Binding TableData}"
GridLinesVisibility
=
"Horizontal"
CanUserFreezeColumns
=
"False"
IsReadOnly
=
"True"
AutoGenerateColumns
=
"False"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StepName}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StepType}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding TotalTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Status}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StartTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StopTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorCode}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorMessage}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorOccurred}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ReportText}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Value}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ComparisonType}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Limits}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Units}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ID}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding PID}"
/>
</
telerik:RadGridView.Columns
>
<
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:GridViewTableDefinition
>
<
telerik:GridViewTableDefinition.Relation
>
<
telerik:TableRelation
IsSelfReference
=
"True"
>
<
telerik:TableRelation.FieldNames
>
<
telerik:FieldDescriptorNamePair
ParentFieldDescriptorName
=
"ID"
ChildFieldDescriptorName
=
"PID"
/>
</
telerik:TableRelation.FieldNames
>
</
telerik:TableRelation
>
</
telerik:GridViewTableDefinition.Relation
>
</
telerik:GridViewTableDefinition
>
</
telerik:RadGridView.ChildTableDefinitions
>
</
telerik:RadGridView
>
13 Answers, 1 is accepted
Actually, I would recommend you to work with RowStyleSelector instead of setting Background property of each row. As the virtualization of the grid is turned on by default, the visual elements will be recycled and reused and most probably the background will be applied on different rows, once you start scrolling.
Please take a look at our online documentation and demos for a reference.
Considering how to reach the child grid, I would recommend you to take a look at this article for additional information.
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

I have added the RowStyleSelector as you suggested with no improvements. The topmost grid is painted correctly but the nested grids are not coloured. I need to hook to some event when the nested tables are displayed. Incidentally, you will see that the innermost table has no subordinates ( i.e it is not expandable ) but it still shows as expandable in the inner grid.
I am attaching a picture of the screen.
UserControl x:Class="WpfTreeandTreeMapCtrl.TreeandTreeMap"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:telerikQuickStart="clr-namespace:Telerik.Windows.Controls.QuickStart;assembly=Telerik.Windows.Controls"
xmlns:example="clr-namespace:WpfTreeAndTreeMapCtrl"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<
UserControl.Resources
>
<
SolidColorBrush
x:Key
=
"folderBackground"
Color
=
"#7A8774"
/>
<
SolidColorBrush
x:Key
=
"folderBorder"
Color
=
"#FFFBE8"
/>
<
Style
TargetType
=
"telerik:RadTreeMapItem"
>
<
Setter
Property
=
"Foreground"
Value
=
"White"
/>
</
Style
>
</
UserControl.Resources
>
<
UserControl.DataContext
>
<
example:ExampleViewModel
/>
</
UserControl.DataContext
>
<
telerikQuickStart:QuickStart.ExampleHeader
>
<
TextBlock
Text
=
"Directory listing"
Margin
=
"8"
/>
</
telerikQuickStart:QuickStart.ExampleHeader
>
<
Grid
x:Name
=
"LayoutRoot"
>
<
Grid.Resources
>
<
Style
x:Key
=
"PassedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"FailedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"SkippedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"BlankStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
example:StatusConverter
x:Key
=
"converter"
/>
<
example:ConditionalStyleSelector
x:Key
=
"selector"
ConditionConverter
=
"{StaticResource converter}"
>
<
example:ConditionalStyleSelector.Rules
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource PassedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>PASSED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource FailedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>FAILED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource SkippedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>SKIPPED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource BlankStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>BLANK</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
</
example:ConditionalStyleSelector.Rules
>
</
example:ConditionalStyleSelector
>
</
Grid.Resources
>
<
Grid
Name
=
"DisplayGrid"
Background
=
"Red"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"300*"
/>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"18*"
/>
<
ColumnDefinition
Width
=
"282*"
/>
</
Grid.ColumnDefinitions
>
<
telerik:RadGridView
x:Name
=
"RadGridView1"
RowLoaded
=
"RadGridView1_RowLoaded"
DataLoading
=
"RadGridView1_DataLoading"
Grid.ColumnSpan
=
"2"
ColumnWidth
=
"*"
ItemsSource
=
"{Binding TableData}"
GridLinesVisibility
=
"Horizontal"
CanUserFreezeColumns
=
"False"
IsReadOnly
=
"True"
AutoGenerateColumns
=
"False"
RowStyleSelector
=
"{StaticResource selector}"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StepName}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StepType}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding TotalTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Status}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StartTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StopTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorCode}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorMessage}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorOccurred}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ReportText}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Value}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ComparisonType}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Limits}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Units}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ID}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding PID}"
/>
</
telerik:RadGridView.Columns
>
<
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:GridViewTableDefinition
>
<
telerik:GridViewTableDefinition.Relation
>
<
telerik:TableRelation
IsSelfReference
=
"True"
>
<
telerik:TableRelation.FieldNames
>
<
telerik:FieldDescriptorNamePair
ParentFieldDescriptorName
=
"ID"
ChildFieldDescriptorName
=
"PID"
/>
</
telerik:TableRelation.FieldNames
>
</
telerik:TableRelation
>
</
telerik:GridViewTableDefinition.Relation
>
</
telerik:GridViewTableDefinition
>
</
telerik:RadGridView.ChildTableDefinitions
>
</
telerik:RadGridView
>
<
GridSplitter
HorizontalAlignment
=
"Right"
VerticalAlignment
=
"Stretch"
Grid.Column
=
"1"
ResizeBehavior
=
"BasedOnAlignment"
Width
=
"5"
Background
=
"#FFBCBCBC"
/>
<
telerik:RadTreeMap
ItemsSource
=
"{Binding Data}"
LayoutStrategy
=
"Squarified"
Grid.Column
=
"2"
Grid.ColumnSpan
=
"3"
MouseDoubleClick
=
"RadTreeMap_MouseDoubleClick"
PreviewMouseDoubleClick
=
"RadTreeMap_MouseDoubleClick"
>
<
telerik:RadTreeMap.TypeDefinitions
>
<
telerik:TypeDefinition
TargetTypeName
=
"Folder"
ValuePath
=
"Size"
ChildrenPath
=
"Children"
LabelPath
=
"Name"
ToolTipPath
=
"Size"
ToolTipFormat
=
"Size: {0:N0} KB"
>
<
telerik:TypeDefinition.Mappings
>
<
telerik:BrushColorizer
Brush
=
"{StaticResource folderBackground}"
/>
<
telerik:BrushColorizer
Brush
=
"{StaticResource folderBorder}"
TargetPropertyName
=
"BorderBrush"
/>
</
telerik:TypeDefinition.Mappings
>
</
telerik:TypeDefinition
>
<
telerik:TypeDefinition
TargetTypeName
=
"File"
ValuePath
=
"Size"
LabelPath
=
"Name"
ToolTipPath
=
"Size"
ToolTipFormat
=
"Size: {0:N0} KB"
>
<
telerik:TypeDefinition.Mappings
>
<
example:FileCustomMapping
/>
<
telerik:BrushColorizer
Brush
=
"{StaticResource folderBorder}"
TargetPropertyName
=
"BorderBrush"
/>
</
telerik:TypeDefinition.Mappings
>
</
telerik:TypeDefinition
>
</
telerik:RadTreeMap.TypeDefinitions
>
</
telerik:RadTreeMap
>
</
Grid
>
</
Grid
>
</
UserControl
>
Could you try to set the RowStyleSeletor for the child grid in the DataLoading event similarly to the approach illustrated in the article mentioned above ? Is it applied in this way or you still get the same behavior ?
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

Thanks for responding.
I can certainly trap that code in the data loading event but I don't know how to set the colour of the row. Below you see I try to set the background to chocolate but it does not work. Ideally I would like to set the color of the row based on the value of the status field.
Peter
private void RadGridView1_DataLoading(object sender, GridViewDataLoadingEventArgs e)
{
GridViewDataControl dataControl = (GridViewDataControl)sender;
if (dataControl.ParentRow != null)
{
dataControl.ShowGroupPanel = true;
dataControl.AutoGenerateColumns = false;
dataControl.CanUserFreezeColumns = false;
dataControl.IsReadOnly = true;
//dataControl.ChildTableDefinitions.Clear();
GridViewDataColumn column = new Telerik.Windows.Controls.GridViewDataColumn();
column.DataMemberBinding = new Binding("StepName");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("StepType");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("StepGroup");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("TotalTime");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("Status");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("StartTime");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("StopTime");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("ErrorCode");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("ErrorMessage");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("ErrorOccurred");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("ReportText");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("Value");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("Comparisontype");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("Limits");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("Units");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("ID");
dataControl.Columns.Add(column);
column = new GridViewDataColumn();
column.DataMemberBinding = new Binding("PID");
dataControl.Columns.Add(column);
dataControl.Background = Brushes.Chocolate;
}

Maya,
I have defined the styles in the XAML like this in the XAML, how can I have the same functionality in the c
behind?
Peter
<
Grid.Resources
>
<
Style
x:Key
=
"PassedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"FailedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"SkippedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"BlankStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
example:StatusConverter
x:Key
=
"converter"
/>
<
example:ConditionalStyleSelector
x:Key
=
"selector"
ConditionConverter
=
"{StaticResource converter}"
>
<
example:ConditionalStyleSelector.Rules
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource PassedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>PASSED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource FailedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>FAILED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource SkippedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>SKIPPED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource BlankStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>BLANK</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
</
example:ConditionalStyleSelector.Rules
>
</
example:ConditionalStyleSelector
>
</
Grid.Resources
>

I have added the
HierarchyChildTemplate/DataTemplate section as someone suggested, I can now hook into the loaded event for the child grid but now it shows nothing. This is a self referential grid . I should call a method that returns the data that is based on the expansion of the parent row item for that grid but I don't know how to do this.
Why can't I attach the style property of the child grid to the parent grid?I am anxious to get this to work!. Can you please respond to my questions.
Thanks,
Peter
<
UserControl
x:Class
=
"WpfTreeandTreeMapCtrl.TreeandTreeMap"
xmlns:sys
=
"clr-namespace:System;assembly=mscorlib"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:telerikQuickStart
=
"clr-namespace:Telerik.Windows.Controls.QuickStart;assembly=Telerik.Windows.Controls"
xmlns:example
=
"clr-namespace:WpfTreeAndTreeMapCtrl"
mc:Ignorable
=
"d"
d:DesignHeight
=
"300"
d:DesignWidth
=
"400"
>
<
UserControl.Resources
>
<
SolidColorBrush
x:Key
=
"folderBackground"
Color
=
"#7A8774"
/>
<
SolidColorBrush
x:Key
=
"folderBorder"
Color
=
"#FFFBE8"
/>
<
Style
TargetType
=
"telerik:RadTreeMapItem"
>
<
Setter
Property
=
"Foreground"
Value
=
"White"
/>
</
Style
>
</
UserControl.Resources
>
<
UserControl.DataContext
>
<
example:ExampleViewModel
/>
</
UserControl.DataContext
>
<
telerikQuickStart:QuickStart.ExampleHeader
>
<
TextBlock
Text
=
"Directory listing"
Margin
=
"8"
/>
</
telerikQuickStart:QuickStart.ExampleHeader
>
<
Grid
x:Name
=
"LayoutRoot"
>
<
Grid.Resources
>
<
Style
x:Key
=
"PassedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"FailedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"SkippedStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
Style
x:Key
=
"BlankStatusStyle"
TargetType
=
"telerik:GridViewRow"
>
<
Setter
Property
=
"Background"
Value
=
"#7F2FB3FD"
/>
</
Style
>
<
example:StatusConverter
x:Key
=
"converter"
/>
<
example:ConditionalStyleSelector
x:Key
=
"selector"
ConditionConverter
=
"{StaticResource converter}"
>
<
example:ConditionalStyleSelector.Rules
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource PassedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>PASSED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource FailedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>FAILED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource SkippedStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>SKIPPED</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
<
example:ConditionalStyleRule
Style
=
"{StaticResource BlankStatusStyle}"
>
<
example:ConditionalStyleRule.Value
>
<
sys:String
>BLANK</
sys:String
>
</
example:ConditionalStyleRule.Value
>
</
example:ConditionalStyleRule
>
</
example:ConditionalStyleSelector.Rules
>
</
example:ConditionalStyleSelector
>
</
Grid.Resources
>
<
Grid
Name
=
"DisplayGrid"
Background
=
"Red"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"300*"
/>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"18*"
/>
<
ColumnDefinition
Width
=
"282*"
/>
</
Grid.ColumnDefinitions
>
<
telerik:RadGridView
x:Name
=
"RadGridView1"
RowLoaded
=
"RadGridView1_RowLoaded"
DataLoading
=
"RadGridView1_DataLoading"
Grid.ColumnSpan
=
"2"
AddingNewDataItem
=
"RadGridView1_AddingNewDataItem"
ColumnWidth
=
"*"
ItemsSource
=
"{Binding TableData}"
GridLinesVisibility
=
"Horizontal"
CanUserFreezeColumns
=
"False"
IsReadOnly
=
"True"
AutoGenerateColumns
=
"False"
RowStyleSelector
=
"{StaticResource selector}"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StepName}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StepType}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding TotalTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Status}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StartTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StopTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorCode}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorMessage}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorOccurred}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ReportText}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Value}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ComparisonType}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Limits}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Units}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ID}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding PID}"
/>
</
telerik:RadGridView.Columns
>
<
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:GridViewTableDefinition
>
<
telerik:GridViewTableDefinition.Relation
>
<
telerik:TableRelation
IsSelfReference
=
"True"
>
<
telerik:TableRelation.FieldNames
>
<
telerik:FieldDescriptorNamePair
ParentFieldDescriptorName
=
"ID"
ChildFieldDescriptorName
=
"PID"
/>
</
telerik:TableRelation.FieldNames
>
</
telerik:TableRelation
>
</
telerik:GridViewTableDefinition.Relation
>
</
telerik:GridViewTableDefinition
>
</
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:RadGridView.HierarchyChildTemplate
>
<
DataTemplate
>
<
telerik:RadGridView
Name
=
"childGrid"
ShowGroupPanel
=
"False"
Grid.ColumnSpan
=
"2"
Loaded
=
"childGrid_Loaded"
ColumnWidth
=
"*"
ItemsSource
=
"{Binding TableData}"
GridLinesVisibility
=
"Horizontal"
CanUserFreezeColumns
=
"False"
IsReadOnly
=
"True"
AutoGenerateColumns
=
"False"
RowStyleSelector
=
"{StaticResource selector}"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StepName}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StepType}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding TotalTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Status}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StartTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StopTime}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorCode}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorMessage}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ErrorOccurred}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ReportText}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Value}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ComparisonType}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Limits}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Units}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ID}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding PID}"
/>
</
telerik:RadGridView.Columns
>
<
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:GridViewTableDefinition
>
<
telerik:GridViewTableDefinition.Relation
>
<
telerik:TableRelation
IsSelfReference
=
"True"
>
<
telerik:TableRelation.FieldNames
>
<
telerik:FieldDescriptorNamePair
ParentFieldDescriptorName
=
"ID"
ChildFieldDescriptorName
=
"PID"
/>
</
telerik:TableRelation.FieldNames
>
</
telerik:TableRelation
>
</
telerik:GridViewTableDefinition.Relation
>
</
telerik:GridViewTableDefinition
>
</
telerik:RadGridView.ChildTableDefinitions
>
</
telerik:RadGridView
>
</
DataTemplate
>
</
telerik:RadGridView.HierarchyChildTemplate
>
</
telerik:RadGridView
>
<
GridSplitter
HorizontalAlignment
=
"Right"
VerticalAlignment
=
"Stretch"
Grid.Column
=
"1"
ResizeBehavior
=
"BasedOnAlignment"
Width
=
"5"
Background
=
"#FFBCBCBC"
/>
<
telerik:RadTreeMap
ItemsSource
=
"{Binding Data}"
LayoutStrategy
=
"Squarified"
Grid.Column
=
"2"
Grid.ColumnSpan
=
"3"
MouseDoubleClick
=
"RadTreeMap_MouseDoubleClick"
PreviewMouseDoubleClick
=
"RadTreeMap_MouseDoubleClick"
>
<
telerik:RadTreeMap.TypeDefinitions
>
<
telerik:TypeDefinition
TargetTypeName
=
"Folder"
ValuePath
=
"Size"
ChildrenPath
=
"Children"
LabelPath
=
"Name"
ToolTipPath
=
"Size"
ToolTipFormat
=
"Size: {0:N0} KB"
>
<
telerik:TypeDefinition.Mappings
>
<
telerik:BrushColorizer
Brush
=
"{StaticResource folderBackground}"
/>
<
telerik:BrushColorizer
Brush
=
"{StaticResource folderBorder}"
TargetPropertyName
=
"BorderBrush"
/>
</
telerik:TypeDefinition.Mappings
>
</
telerik:TypeDefinition
>
<
telerik:TypeDefinition
TargetTypeName
=
"File"
ValuePath
=
"Size"
LabelPath
=
"Name"
ToolTipPath
=
"Size"
ToolTipFormat
=
"Size: {0:N0} KB"
>
<
telerik:TypeDefinition.Mappings
>
<
example:FileCustomMapping
/>
<
telerik:BrushColorizer
Brush
=
"{StaticResource folderBorder}"
TargetPropertyName
=
"BorderBrush"
/>
</
telerik:TypeDefinition.Mappings
>
</
telerik:TypeDefinition
>
</
telerik:RadTreeMap.TypeDefinitions
>
</
telerik:RadTreeMap
>
</
Grid
>
</
Grid
>
</
UserControl
>
I am attaching a sample project illustrating how you can set RowStyleSelector for a self-reference hierarchical grid. Please take a look at it and let me know whether this is the behavior you require.
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

The example you sent me is not sufficient.
In one of your examples you have the following sample code. Is it possible to get the current item row instead of the parent row?
In that way I could check if the row is expandible,
We are moving slowly with this project. How much does a service contract cost?
Peter
private void RadGridView1_DataLoading(object sender, GridViewDataLoadingEventArgs e)
{
GridViewDataControl dataControl = (GridViewDataControl)sender;
if (dataControl.ParentRow != null)
Generally, you can get a row during the RowLoaded event and check its status there. However, in order to suggest the most appropriate solution, it would be great if you could share a bit more details. Would you clarify why the suggested approach is not appropriate for you ?
Considering your second question, I would recommend you to run through this post for additional reference.
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

This is a situation with the nested grid where you have an outergrid with a series of nested grids. As you see in the first example I gave. The problem is in the colouring of the nested grids because when the child grids are loaded, the row_loaded event is not fired.
Peter
Unfortunately, we reached our limits of suggesting what could be the most appropriate solution for your particular case. It would be great if you could send us a sample project illustrating your scenario and a detailed description of what is the desired behavior. Once we are aware of you exact requirements, we will be able to suggest any further.
Thank you for your understanding.
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

Maya,
I am attaching a sample project with the issues I referred to.
Here are the instructions for running the project:
1. Unzip the project.
2. Create a folder c:\testdata2 and copy the file sample.rlx to this folder.
sample.rlx is a compress form of an XML file ( in case you want to have a look at it ).
In the display there is a cascading grid on the left and a tree map on the right which are really 2 views of the same data.
The issues are:
1. The cascading grid does not preserve the colors of the outer grid.
2. I cannot scroll the contents of a nested grid.
3. The treemap does not color some of the rectangles. If I put the breakpoint in the FileCustomMapping code sometimes it does not hit the break point.
4. Instead of manually zooming in the treemap, is there anyway I can click on a rectangle and zoom in that node?
5. When I zoom in that node, can I dynamically "filter" to that grid on the left side?
I cannot attach a zipped file. How can I send you the code?
Thanks.
Zip files can be attached only when you open a support ticket. Would you try to do so and attach the application there ?
Thank you in advance.
Regards,
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>