Silverlight DataGrid - грязные ряды - PullRequest
0 голосов
/ 05 октября 2010

У меня есть Silverlight DataGrid, для которого пользователь может изменять значения. У меня также есть кнопка «Сохранить».Когда пользователь нажимает кнопку «Сохранить», я хочу, чтобы только строки (элементы) из сетки данных, которые пользователь изменил, были сохранены.Как мне это сделать?

1 Ответ

0 голосов
/ 05 октября 2010

Что ж, если свойство ItemsSource вашей DataGrid связано с коллекцией класса с именем MyClass, вы можете добавить свойство bool к MyClass с именем IsModified. Затем в других установщиках этого класса вы можете установить IsModified на true. Например:

public class MyClass
{
    public bool IsModified { get; set; }

    private string _foo;

    public string Foo
    {
       get { return _foo; }
       set
       {
           _foo = value;
           IsModified = true;
       }
    }
}

Затем вы можете использовать Linq для запроса коллекции элементов, где IsModified равен true (этот код предполагает, что items - это коллекция, связанная с вашим DataGrid):

List<MyClass> toSave = items.Where(x => x.IsModified).ToList();

Наконец, используйте любой метод сохранения, который вы используете для обработки каждого элемента в toSave:

foreach (MyClass curr in toSave)
{
    // Save "curr" here...

    // Don't forget to reset IsModified
    curr.IsModified = false;
}

Надеюсь, это поможет.

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