问题
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