selecteditems personalizar ejemplo columns wpf datagrid
http://www.tanguay.info/web/download/testDataGrid566northwindDatagrid.zip

personalizar - wpf datagrid columns



¿Cómo hacer que este código CRUD funcione en WPF DataGrid? (2)

¿Por qué necesitas el texto original? ¿Es para mostrar algún mensaje informativo?

En su caso, parece que está vinculando la cuadrícula de datos a sus objetos LinqToSQL. Esto significa que el objeto del Cliente al que está asociada la fila ya está actualizado y todo lo que necesita hacer es llamar a SubmitChanges ().

Estoy escribiendo el código CRUD para WPF Datagrid.

En el método TheDataGrid_CellEditEnding a continuación:

  • ¿Cómo obtengo el texto original antes de que el usuario realice el cambio?
  • Necesito el texto original para poder cambiar el cliente y guardarlo en la base de datos con _db.SubmitChanges ()

Aquí está la solución completa con base de datos si alguien quiere experimentar con esto:

http://www.tanguay.info/web/download/testDataGrid566northwindDatagrid.zip

XAML:

<toolkit:DataGrid x:Name="TheDataGrid" AutoGenerateColumns="True" CellEditEnding="TheDataGrid_CellEditEnding"/>

código detrás:

private void TheDataGrid_CellEditEnding(object sender, Microsoft.Windows.Controls.DataGridCellEditEndingEventArgs e) { //get the original text Customer customer = e.Row.Item as Customer; string customerID = customer.CustomerID; int displayIndex = (int)e.Column.DisplayIndex; // e.g. equals 4 when user edits the 5th column //HOW TO I GET THE ORIGINAL TEXT? THERE IS NO FIELDS METHOD IN THE LINQ-TO-SQL CLASSES string originalText = customer.Fields[displayIndex].value.ToString(); //get the changed text TextBox changedTextBox = e.EditingElement as TextBox; string changedText = changedTextBox.Text; //inform user Message.Text = String.Format("cell was changed from {0} to {1}", originalText, changedText); //I NEED TO CHANGE THE CUSTOMER WITH THE ABOVE TEXT //BEFORE I SAVE IT BACK HERE _db.SubmitChanges(); }