2012-07-28 43 views
0

我有一個dataGrid擴展的選擇模式,所以我可以選擇很多行。如何獲取在擴展選擇模式下選擇的當前DataGrid行?

我有一個樣式觸發器,有一個多值轉換器,根據一些條件設置行的背景顏色。

那麼,在我的探測中,我傳遞了三個參數:ItemsSource,SelectedItemsselectedItem。我注意到以下行爲:

當我選擇第一行時,ItemsSource包含dataGrid的所有行。這是對的。 SelectedItems有0項,selectedItem爲空。但是,不做任何事情,代碼在轉換器中第二次輸入,在這種情況下SelectedItem是在dataGrid中選擇的項目,但SelectedItems沒有項目。

當我選擇第二行時,SelectedItems有一個項目,dataGridselectedItem的第一個選定行也有第一行。在這種情況下,代碼不會在轉換器中第二次進入。

當我選擇第三行時,SelectedItems有兩項,第一行和第二行被選中,但不是第三行。 SelectedItem選擇了第一行。

所以我看到SelectedItem總是選擇第一行,SelectedItems有n-1個選定的行。

但我怎麼知道當前選中的行是什麼?新排?

+0

清理問題。例如。 「但是,不做任何事,代碼第二次進入轉換器」 – Paparazzi 2012-07-28 13:21:46

回答

2
<DataGrid SelectionMode="Extended" SelectionUnit="FullRow"></DataGrid> 

您的選擇單位必須是FullRow。我希望這會有所幫助。

+0

是的,我已經以這種方式設置了這兩個選項。 – 2012-07-28 15:51:35

+0

你可以請你顯示你的XAML和轉換器? – ethicallogics 2012-07-28 16:04:15

相關問題