开发者

Silverlight DataGrid - Dirty Rows

开发者 https://www.devze.com 2023-01-19 05:29 出处:网络
I have a Silverlight DataGrid, for which the user can change values in. I also have a \"Save\" button. When the user开发者_如何转开发 clicks the \"Save\" button, I want only the rows (items) from the

I have a Silverlight DataGrid, for which the user can change values in. I also have a "Save" button. When the user开发者_如何转开发 clicks the "Save" button, I want only the rows (items) from the data grid that the user has changed to be saved. How can I accomplish this?


Well, if your DataGrid's ItemsSource property is bound to a collection of a class called MyClass, you could add a bool property to MyClass called IsModified. Then, in the other setters within that class, you could set IsModified to true. For example:

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

    private string _foo;

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

Then, you could use Linq to query the collection of items where IsModified is true (this code assumes items is the collection that is bound to your DataGrid):

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

Finally, use whatever save method you have to handle each item in toSave:

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

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

Hope this helps.

0

精彩评论

暂无评论...
验证码 换一张
取 消