Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
271 views
in Technique[技术] by (71.8m points)

c# - Accessing items in ObservableCollection bound to WPF DataGrid

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...