Silverlight DataGrid 的OnUnloadingRow事件會遺失!
最近使用Silverlight 的DataGrid,發現很多地方礙手礙腳的, 
好不容易解決大部分需求的時候,卻發現一個莫名其妙的問題 
就是DataGrid的OnUnloadingRow事件會遺失!
因為特殊需求,所以我繼承了DataGrid,有個原因就是為了要處理目前畫面上顯示的Row, 
根據DataGrid的說明,大概也只有LoadingRow和UnloadingRow這兩個事件可以辦到 
我繼承DAtaGrid後,覆寫了OnLoadingRow和OnUnloadingRow這兩個函式 
程式碼如下:
1: public class MyDataGrid : DataGrid {
2: protected override void OnLoadingRow(DataGridRowEventArgs e) {
   3:         ...4: base.OnLoadingRow(e);
   5:     }   6:  7: protected override void OnUnloadingRow(DataGridRowEventArgs e) {
   8:         ...9: base.OnUnloadingRow(e);
  10:     }  11: }照道理來說他們應該會平衡呼叫才是,也就是載入一個新的就要丟掉一個舊的! 
但是我發現,完全不是這樣阿!!!
OnLoadingRow是很乖的每次都會被呼叫,但是OnUnloadingRow就像沒人要的小孩一樣, 
經常會遺失,在快速拉動捲軸,讓DataGrid裡面的Row快速變換的情形下更是嚴重! 
經過我吐血的實驗發現,竟然只要用DataGrid.UnloadingRow的方式加入事件函式, 
叫用的情形就完全正常了!!! 
而且只需要加入UnloadingRow事件就可以了 
Silverlight我真猜不透你阿!!
Silverlight DataGrid 的OnUnloadingRow事件會遺失!.rar
