English 中文(简体)
Create a View of a View in WPF
原标题:

OK, so I need to create an ICollectionView from an existing ICollectionView. The idea is that I can take whatever filters/grouping/sorting has been set on the existing view and then create other views from that "base" view, in effect "layering" or aggregating my filters, etc.

I need the end view to update its items "auto-magically" when the source collection (an ObservableCollection<T> ) updates and when the data item is updated--like calling the Refresh() method. I need to avoid calling Refresh on all the views because we don t know all the views between the original collection and the end view, and the Refresh() is painfully slow.

We are trying to avoid rolling our own view classes--we would prefer (strongly) to use something that already exists in the .net library.

Update

We have a call in to Microsoft about this. I know others have the same problem, as least, that what Dr. WPF tells me.

最佳回答

OK, so we ended up rolling our own collection and view.

Our collection is based from ObservableCollection which attaches to the PropertyChanged event of every element that is in the collection. We have an event that we invoke whenever the property changes, this way other classes and/or views can hook that and handle it as they see fit.

We then created our own ICollectionView based from ListCollectionView. The view watches for the CollectionItemChanged event from the collection and simply calls (if the item in collection is IEditableObject) IEditableList.EditItem(...) and IEditableList.CommitItem(...)

this Edit() and then CommitItem() causes the view to refresh without actually calling Refresh()

This is totally "haxor" but, it works until the day MS does something for us poor developers to fix this.

问题回答

暂无回答




相关问题
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 ...

热门标签