2010-10-05 66 views
0

我有一個Silverlight DataGrid,用戶可以在其中更改值。我也有一個「保存」按鈕。當用戶點擊「保存」按鈕時,我只想要保存用戶已更改的數據網格中的行(項目)。我怎樣才能做到這一點?Silverlight DataGrid - 髒行

回答

0

好吧,如果你的DataGrid的ItemsSource屬性綁定到一個名爲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查詢項目的集合,其中IsModifiedtrue(此代碼假定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; 
} 

希望這可以幫助。