Hello, I am using LINQ to SQL class in order to retrieve and write data in my SQL. I have a table called Student and Subjects. Student is my parent table and Subjects is my child table. I successfully displays per student his/her subjects with Hierarchical Data Grid. I can add, delete, update, read data in my Subjects using the Property CanUserInsertRows and ShowInsertRow as true. Now my problem is that when I want to add new item in my Student table I cannot click my add new item or it is not clickable. Any help please?
Here's my xaml file
And my class file
How come I cannot click the add new item of my parent table?
Here's my xaml file
<Window x:Class="HierarchiyGridSuccess.MainWindow" xmlns:telerikData="clr-namespace:Telerik.Windows.Data;assembly=Telerik.Windows.Data" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <telerik:RadGridView Grid.Row="0" x:Name="rgvData" ShowInsertRow="True" AutoGenerateColumns="False" telerik:Theming.Theme="Windows7" ItemsSource="{Binding}" > <telerik:RadGridView.ChildTableDefinitions> <telerik:GridViewTableDefinition /> </telerik:RadGridView.ChildTableDefinitions> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn DataMemberBinding="{Binding StudentID}" Header="Student ID" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding StudentFN}" Header="Student First Name" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding StudentLN}" Header="Student Last Name" /> </telerik:RadGridView.Columns> <telerik:RadGridView.HierarchyChildTemplate> <DataTemplate> <telerik:RadGridView x:Name="RadGridView1" Loaded="rgvData_Loaded" AutoGenerateColumns="False" ShowInsertRow="False" CanUserInsertRows="False" ItemsSource="{Binding Subjects}" ShowGroupPanel="False" IsReadOnly="False"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn DataMemberBinding="{Binding SubjectName}" Header="Subject Name" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding SubjectProf}" Header="Professor" /> </telerik:RadGridView.Columns> </telerik:RadGridView> </DataTemplate> </telerik:RadGridView.HierarchyChildTemplate> </telerik:RadGridView> <Button Content="Save!" Width="Auto" Height="Auto" Grid.Row="1" Click="Button_Click" /> </Grid></Window>And my class file
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using System.Collections.Specialized;using Telerik.Windows.Controls;using Telerik.Windows.Controls.GridView;namespace HierarchiyGridSuccess{ /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> 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; } void rgvData_Filtered(object sender, Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs e) { rgvData.ItemsSource = m_dcData.Students; } private void Items_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { try { if (e.Action == NotifyCollectionChangedAction.Add) { foreach (Student item in e.NewItems) { this.m_dcData.Students.InsertAllOnSubmit(e.NewItems.OfType<Student>()); } } if (e.Action == NotifyCollectionChangedAction.Remove) { this.m_dcData.Students.DeleteAllOnSubmit(e.OldItems.OfType<Student>()); } } catch (Exception s) { } } void MainWindow_Loaded(object sender, RoutedEventArgs e) { m_dcData = new DataAccessDataContext(); m_dcData.Log = Console.Out; DataContext = m_dcData.Students; rgvData.ShowInsertRow = true; } private void Button_Click(object sender, RoutedEventArgs e) { var changes = this.m_dcData.GetChangeSet(); rgvData.BeginInsert(); MessageBox.Show(string.Format("There are {0} inserts and {1} deletes pending.", changes.Inserts.Count, changes.Deletes.Count)); m_dcData.SubmitChanges(); } }}How come I cannot click the add new item of my parent table?
