2016-07-24 25 views
0

我有一個GridView這種結構:WPF - GridView中,選擇行自動

<GridView> 
    <GridViewColumn Header="Data" Width="150" DisplayMemberBinding="{Binding Path = Score}"/> 
</GridView> 

現在所有的項目都是可觀察集合裏面,我要檢查,如果該行的值發生變化,然後在代碼後面自動選擇該行。其實我已經定義了這個條件,但我無法設法將代碼改變爲GridView,有人知道該怎麼做?

回答

1

如果綁定與observablecollection電網應該使用SelectedItem屬性在數據網格或ListView

SelectedItem="{Binding Path=YourSelectedItem}" 
+0

是可能的刪除10秒後選擇的項目? – Heisenberg

+0

當然這是可能的。當選擇發生變化時,使用tick = 10 sn啓動計時器,從可觀察集合中刪除選定的對象,並且完成 – Ugur

1

那麼我認爲你可以使用CollectionChanged事件的檢測,如果收集/數據改變。

下面是一個例子:

/// <summary> 
/// The collection of drivers just changed: add or remove 
/// </summary> 
/// <param name="sender">Sernder of the Event.</param> 
/// <param name="e">Event Arguments.</param> 
private void Drivers_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) 
{ 
    // Only Delete 
    if (e.Action == NotifyCollectionChangedAction.Remove) 
    { 
     foreach (FormulaOneDriver driver in e.OldItems) 
     { 
      driver.Delete(); 
     } 
    } 
} 

要使用它在構造註冊事件。

ObservableCollection<FormulaOneDriver> drivers = this.DriversDataGrid.ItemsSource as ObservableCollection<FormulaOneDriver>; 
drivers.CollectionChanged += new NotifyCollectionChangedEventHandler(this.Drivers_CollectionChanged); 
+0

可以更改所選項目的顏色? – Heisenberg