English 中文(简体)
名单 观点选择的改动没有删除旧项目
原标题:ListView selection change doesn t remove an old item

I have a strange behavior with my WPF ListView Control.
ListViews ItemSource is Observable collection.the ItemSource is updated periodically.
When I m selecting one of the item and then selecting other item and no item updated, everything is OK.
But when I m selecting an item witch is updated while I m standing on, then selecting other item, now I have two items selected instead of one.
When I m looking with the debugger, I see the event args of SelectionChanged event. I see that added item is OK but no removed item.
Anyone knows what s the problem?
Thanks!

Edit:

可观察的收集资料:

    protected class CustomObservableCollection : ObservableCollection<T>
    {
        public void Refresh()
        {
            ListCollectionView lcv = (ListCollectionView)(CollectionViewSource.GetDefaultView(this));
            lcv.Refresh();
        }
    }

在有些项目发生变化时,需要更新的方法:

    public void RefreshItem(T domainObject)
    {
        foreach (T item in obsCollection) {
            if (!DomainObjectComparer.Equals(domainObject, item)) continue;
            DomainObjectCopier.CopyProperties(domainObject, item);
            obsCollection.Refresh();
            break;
        }
    }
最佳回答

Well, Apparently the problem was with the overridden GetHashCode() method of the ListView item object. the hash code included all the fields in it s calculation. I remoed all the fields (properties) and now the overridden GetHashCode() is only calculating the hash based on item s ID. it solved the problem.
I also have Equals() method overridden.
If someone knows why it is related I will like to know.

问题回答

它认为,从上文有限数量的法典来看,这有两个项目属于你收集的。

如果在清单中有两个或两个以上的项目相同(相等),那么选择一个项目将选择所有这些项目,作为平等比较器,在甄选逻辑中使用。





相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签