Как заставить этот код CRUD работать на WPF DataGrid? - PullRequest
2 голосов
/ 23 марта 2009

Я пишу CRUD-код для WPF Datagrid.

В методе TheDataGrid_CellEditEnding ниже:

  • как получить исходный текст до того, как пользователь внес изменение?
  • Мне нужен оригинальный текст, чтобы сменить клиента и сохранить его обратно в базу данных с помощью _db.SubmitChanges ()

Вот полное решение с базой данных, если кто-то хочет поэкспериментировать с этим:

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

XAML:

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

код-за:

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();
}

Ответы [ 2 ]

1 голос
/ 23 марта 2009

Зачем вам нужен оригинальный текст? Для отображения какого-либо информационного сообщения?

В вашем случае вы, кажется, связываете сетку данных с вашими объектами LinqToSQL. Это означает, что объект Customer, с которым связана строка, уже обновлен, и все, что вам нужно сделать, это вызвать SubmitChanges ().

0 голосов
/ 28 марта 2009

Я нашел образцы в этом блоге очень полезными http://blogsprajeesh.blogspot.com/2009/03/blog-post.html

Объясняет сортировку с использованием событий коллекции и сетки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...