or
<Windowx:Class="VisionRT.CRM.WPF.TelerikMainWindow"mc:Ignorable="d"DataContext="{Binding Main, Source={StaticResource Locator}}"xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"xmlns:telerikData="clr-namespace:Telerik.Windows.Data;assembly=Telerik.Windows.Data"xmlns:telerikControls="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"xmlns:System="clr-namespace:System;assembly=mscorlib"d:DesignHeight="390"d:DesignWidth="729"Width="650"Loaded="Window_Loaded"><Grid><telerik:RadGridViewHorizontalAlignment="Stretch"Margin="12,62,12,0"Name="radGridView1"ItemsSource="{Binding Path=ContactList, Mode=TwoWay}"AutoGenerateColumns="False"IsSynchronizedWithCurrentItem="True"VerticalAlignment="Top"Height="248"><telerik:RadGridView.Columns><telerik:GridViewDataColumnHeader="Title"DataMemberBinding="{Binding Title}"Width="*"IsGroupable="True"><telerik:GridViewDataColumn.AggregateFunctions><telerikData:CountFunctionCaption="Count: "/></telerik:GridViewDataColumn.AggregateFunctions></telerik:GridViewDataColumn><telerik:GridViewDataColumnHeader="First Name"DataMemberBinding="{Binding FirstName}"Width="*"IsGroupable="True"/></telerik:RadGridView.Columns></telerik:RadGridView></Grid></Window>
<telerik:RadGridView x:Name="rgvData" CanUserFreezeColumns="False" GridLinesVisibility="Horizontal" IsReadOnly="False" AutoGenerateColumns="False" telerik:Theming.Theme="Office_Blue" ItemsSource="{Binding}" > <telerik:RadGridView.ChildTableDefinitions> <telerik:GridViewTableDefinition /> </telerik:RadGridView.ChildTableDefinitions> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn DataMemberBinding="{Binding StudentID}" Header="Category ID" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding StudentFN}" Header="Category Name" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding StudentLN}" Header="Description" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding Picture}" Header="Picture" /> </telerik:RadGridView.Columns> <telerik:RadGridView.HierarchyChildTemplate> <DataTemplate> <telerik:RadGridView x:Name="RadGridView1" Loaded="rgvData_Loaded" ShowInsertRow="True" CanUserInsertRows="True" ItemsSource="{Binding Subjects}" CanUserFreezeColumns="False" AutoGenerateColumns="False" ShowGroupPanel="False" IsReadOnly="False"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn DataMemberBinding="{Binding SubjectID}" Header="Order ID" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding SubjectName}" Header="Employee ID" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding SubjectProfessor}" Header="Order Date" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding ShipCountry}" Header="Ship Country" /> </telerik:RadGridView.Columns> </telerik:RadGridView> </DataTemplate> </telerik:RadGridView.HierarchyChildTemplate> </telerik:RadGridView>public partial class MainWindow : Window { DataAccessDataContext m_dcData; public MainWindow() { InitializeComponent(); this.Loaded += new RoutedEventHandler(MainWindow_Loaded); this.rgvData.Items.CollectionChanged += new NotifyCollectionChangedEventHandler(Items_CollectionChanged); rgvData.Filtered += new EventHandler<Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs>(rgvData_Filtered); } void rgvData_Loaded(object sender, RoutedEventArgs e) { var childGrid = (RadGridView)sender; var parentRow = childGrid.ParentRow; if (parentRow != null) { rgvData.SelectedItem = childGrid.DataContext; parentRow.IsExpandedChanged += new RoutedEventHandler(parentRow_IsExpandedChanged); } } void parentRow_IsExpandedChanged(object sender, RoutedEventArgs e) { rgvData.SelectedItem = ((GridViewRow)sender).DataContext; }x void rgvData_Filtered(object sender, Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs e) { DataContext = m_dcData; m_dcData = new DataAccessDataContext(); m_dcData.Log = Console.Out; rgvData.ItemsSource = m_dcData.Students; rgvData.ShowInsertRow = true; } private void Items_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { try { if (e.Action == NotifyCollectionChangedAction.Add) { foreach (Student item in e.NewItems) { m_dcData.Students.InsertOnSubmit(item); } } if (e.Action == NotifyCollectionChangedAction.Remove) { foreach (Student item in e.OldItems) { m_dcData.Students.DeleteOnSubmit(item); } } } catch (Exception s) { } } void MainWindow_Loaded(object sender, RoutedEventArgs e) { m_dcData = new DataAccessDataContext(); m_dcData.Log = Console.Out; rgvData.ItemsSource = m_dcData.Students; rgvData.ShowInsertRow = true; rgvData.ItemsSource = m_dcData.Students; rgvData.ShowInsertRow = true; } }