WPF:listview SelectedIndex在绑定数据更新时返回-1?

WPF:listview SelectedIndex在绑定数据更新时返回-1?,wpf,data-binding,listview,Wpf,Data Binding,Listview,我正在列表视图中显示数据。数据(通过DLL获取并在ObservableCollection中设置)使用TimerCallback每隔3秒更新一次。我正在ListView和数据之间使用数据绑定。 我正在为列表视图项添加右键单击菜单。似乎当数据更新时,我的listview的SelectedIndex将返回-1。如果我快速使用右键单击菜单或将TimerCallback设置为不太频繁,我不会经常选择等于-1的索引。 我的假设正确吗? 2-如果是这样的话,我该如何应对?我是否可以检测右键单击菜单何时弹出,

我正在列表视图中显示数据。数据(通过DLL获取并在ObservableCollection中设置)使用TimerCallback每隔3秒更新一次。我正在ListView和数据之间使用数据绑定。

我正在为列表视图项添加右键单击菜单。似乎当数据更新时,我的listview的SelectedIndex将返回-1。如果我快速使用右键单击菜单或将TimerCallback设置为不太频繁,我不会经常选择等于-1的索引。

我的假设正确吗? 2-如果是这样的话,我该如何应对?我是否可以检测右键单击菜单何时弹出,并仅在TimerCallback上禁用后台数据更新?还有更好的办法吗?
谢谢 将ListView项资源绑定到ObservableCollection时,仅当保留相同的对象时,SelectedItem信息才会保留

如果您使用这样的代码来更新ItemsSource

yourListView.ItemsSource = newObsevableCollection;
由于使用新对象实例,您将丢失更新通知和所选项目信息

解决方案是保留相同的对象,只更新值,并实现NotifyChanged事件来更新ListView