DataGrid在CompositeCollection Edit上崩溃

时间:2009-11-06 15:58:40

标签: datagrid compositecollection

我有一个DataGrid。 它的ItemsSource通过ViewModel绑定到ModelView的CompositeCollection。 CompositeCollection由2个ObservableCollections组成。

网格上的显示很好。我能看到这个系列。 但是,当我尝试编辑其中一行时,我遇到了崩溃(NotSupportedException): “此视图不允许使用'EditItem'”

如何使行可编辑?我需要能够编辑表示网格中每一行的ModelView。

这是我用来绑定到itemssource的CompositeCollection属性代码: 这不是确切的代码,因为我不允许发布确切的代码,但它与我如何制作集合的逻辑相同

public CompositeCollection ModelViewsCollection         {             得到             {                 CollectionContainer modelViewContainer;

            CompositeCollection modelViewCollection = new CompositeCollection();


            modelViewContainer= new CollectionContainer();
            modelViewContainer.Collection= this.ModelViewCollection;
            modelViewCollection .Add(modelViewContainer);

modelViewContainer = new CollectionContainer();                 modelViewContainer.Collection = this.ModelViewCollection2;                 modelViewCollection .Add(modelViewContainer);

            return modelViewCollection;
        }
    }

1 个答案:

答案 0 :(得分:2)

CompositeCollection 未实现数据网格用于编辑的 IEditableCollectionView

我遇到了同样的问题,最后在视图模型上做了我自己的复合集合,类似于你所拥有的,如果你在你的集合中放入的是两个可观察的集合,它并不难以跟踪听取集合的变化。并使您的viewmodels集合由两者组成

你甚至可以做我所做的肮脏的黑客,重建ObservableCollection网格绑定到每次收集的一个变化(我知道不优雅,但生病时回去并优化,当我有时间..即从来没有)使用linq查询这个东西真的很容易。

否则也许您可以从CompositeCollection派生并尝试添加IEditableCollectionView,如果您正常工作,请务必告诉我。

这是数据网格论坛上的the same question

相关问题