Hi,
I am trying to create a program that will have a listbox on the left of database table names and then a grid area to the right.
When the user double clicks on a table name a grid with the table data should be populated with the table data. Once it is open the user should be able to make changes and hit the save button that will submit the datacontext changes.
I have a linq to sql set up for the Northwind database for this example.
As soon as I make a change in the grid to a cell the entire row disappears??? not sure what I am doing wrong.
Thanks,
Jessica
I am trying to create a program that will have a listbox on the left of database table names and then a grid area to the right.
When the user double clicks on a table name a grid with the table data should be populated with the table data. Once it is open the user should be able to make changes and hit the save button that will submit the datacontext changes.
I have a linq to sql set up for the Northwind database for this example.
As soon as I make a change in the grid to a cell the entire row disappears??? not sure what I am doing wrong.
Thanks,
Jessica
DataProvider.csnamespace SampleLinqToSQL{ public static class DataProvider { private static NorthwindDataContext dataContext = null; public static NorthwindDataContext DataContext { get { return dataContext; } } static DataProvider() { dataContext = new NorthwindDataContext(); } public static void SetDataContext(string connectionString) { dataContext = null; dataContext = new NorthwindDataContext(connectionString); } }}MainWindow.xaml<Window x:Class="SampleLinqToSQL.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Height="350" Width="525"> <DockPanel LastChildFill="True"> <StackPanel DockPanel.Dock="Bottom" HorizontalAlignment="Right" Orientation="Horizontal"> <Button x:Name="SaveBtn" Width="50" Height="25" Margin="5" Click="SaveBtn_Click">Save</Button> <Button x:Name="CancelBtn" Width="50" Height="25" Margin="5" Click="CancelBtn_Click">Cancel</Button> </StackPanel> <ListBox x:Name="TableNames" DockPanel.Dock="Left" Width="140" MouseDoubleClick="TableNames_MouseDoubleClick"></ListBox> <Border> <DockPanel x:Name="DocumentArea"> <telerik:RadGridView x:Name="dataGridView" AutoGenerateColumns="True" ItemsSource="{Binding}" /> </DockPanel> </Border> </DockPanel></Window>MainWindow.xaml.csnamespace SampleLinqToSQL{ /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { private string sqlConnection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Path\Northwind.mdf;Integrated Security=True;User Instance=True"; public MainWindow() { InitializeComponent(); DataProvider.SetDataContext(sqlConnection); LoadTableNames(); } private void LoadTableNames() { List<string> tableNames = new List<string>(); foreach (PropertyInfo item in DataProvider.DataContext.GetType().GetProperties()) { tableNames.Add(item.Name); } tableNames = tableNames.OrderBy(s => s).ToList(); TableNames.ItemsSource = tableNames; } private void SaveBtn_Click(object sender, RoutedEventArgs e) { DataProvider.DataContext.SubmitChanges(); } private void CancelBtn_Click(object sender, RoutedEventArgs e) { //TODO } private void TableNames_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (TableNames.SelectedItem != null) { dataGridView.DataContext = DataProvider.DataContext.GetTableByName(TableNames.SelectedItem.ToString()).AsParallel(); } } }}