2011-06-17 103 views
0

假設我有選擇一行Data Grid提供VS2010。WPF數據網格: - 遍歷每一行或記錄(C#4.0)

現在假設我需要只有選定的行下方的記錄那麼我該怎麼辦?

我認爲這可以通過迭代遍歷Data Grid的每一行。但如何?

這是爲什麼?因爲

假設我已經綁定了一個集合到datagrid。

現在我使用列Data Grid頭重新排序Data Grid

Then Data Grid中的記錄是重新排列,但下層集合中的記錄保持無序。

手段重新排序沒有不是在說謊收集影響。

所以我不能使用它獲取所選行下的記錄

注:這裏需要重排序時

謝謝...

回答

1

你可以得到它包裝原始集合和其中的順序發生使用CollectionViewSource.GetDefaultViewCollectionView

你的DataGrid需要與當前項目進行同步,那麼你得到的位置,並獲取對象緊接着,例如: -

<DataGrid IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Data}" /> 
var view = CollectionViewSource.GetDefaultView(Data) as ListCollectionView; 
if (view != null) 
{ 
    var i = view.CurrentPosition; 
    var nextEmp = view.GetItemAt(i + 1) as Employee; 
    if (nextEmp != null) 
    { 
     nextEmp.Name = "Steve!"; 
    } 
} 
+0

謝謝你這麼多,這是確切的答案。但是沒有任何LINQ查詢會在「view」上觸發時將當前選定的所有記錄提供給最後一個「view」記錄。謝謝.. – Pritesh 2011-06-17 12:00:31