问题
I have an ObservableCollection bound to a WPF DataGrid in which MyClass has a Boolean flag indicating if item has been seen or not. If the item in the DataGrid is selected I want to set the MyClass.Seen property to true to indicate that it was viewed. Initially, the SelectedIndex of the DataGrid matches to the index of the ObservableCollection but if I ever sort the DataGrid using any of the various columns that it displays, the SelectedIndex no longer matches with the ObservableCollection.
Up until now I have been looping thru the ObservableCollection comparing a value in MyClass to a column value of the DataGrid's SelectedIndex row to find a match. Is there a better way to accomplish this where referencing the SelectedIndex of the DataGrid points me to the correct item in the ObservableCollection?
回答1:
Rather than using SelectedIndex
, have you tried using SelectedItem
or SelectedValue
? If the DataGrid
's ItemSource
is set to your ObservableCollection
, then those properties should point directly to the selected contained object.
来源:https://stackoverflow.com/questions/33810285/accessing-items-in-observablecollection-bound-to-wpf-datagrid