问题标签 [ieditablecollectionview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1827 浏览

wpf - WPF:IEditableCollectionView 和 CanAddNew 和空集合

我们在使用 wpf 数据网格和 IEditableCollectionView 时遇到了一些问题(尽管此问题适用于使用 IEditableCollectionView 和 ItemsControl)当您的集合中没有项目时,IEditableCollectionView 无法确定应该插入哪些项目,因此我们在此处CanAddNew=false找到了解决方案(深埋在评论中)就像这样:

如果你像这样从 ObservableCollection 派生

您会发现如果初始集合为空,则视图上不会显示 NewItemPlaceHolder。这是因为 PersonsList 在设计时无法解析类型 T。对我有用的解决方法是将类型 T 作为参数传递给这样的类

即使集合为空,这种方法也会放置 NewItemPlaceHolder。

我想知道我是否可以在我的集合上实现一个接口,通知 IEditableCollectionView 如果我收到 AddNew 请求要创建哪种类型。

0 投票
3 回答
11488 浏览

wpf - 此视图不允许使用“EditItem” - 数据绑定问题

我正在尝试使用自定义列表在数据网格上的 WPF 中进行数据绑定。我的自定义列表类包含一个私有数据列表类型List<T>。我无法公开此列表,但是公开索引器以设置和获取单个项目。我的自定义类如下所示:

数据已绑定,但当我尝试编辑它时,'EditItem' is not allowed for this view出现错误。在通过网络进行广泛搜索时,我发现我可能还需要实现 IEditableCollectionView 接口。任何人都可以帮助我提供有关如何实现此接口的指示或任何其他更好的方法来在自定义列表上进行数据绑定吗?

0 投票
0 回答
1589 浏览

wpf - WPF:如何使用 ICollectionView 和 IEditableCollectionView 等视图

我了解语法,但不了解如何真正使用它。在许多基本场景中都很清楚,但是一旦它变得有点高级,我就开始头疼。

例如,有许多不同的视图,但通常不清楚使用哪个视图。您也应该始终只使用一种或混合搭配。您是否将视图用作 ItemsControls 的 itemssource?

我要给出一个场景。我有来自数据库的项目,我需要在应用程序中显示有关信息,还允许编辑和添加新项目。项目形成层次结构,模型具有不同的类型。所以顶层有孩子,然后他们有孩子。

我可以在 TreeView 或某些项目控件中显示它。这里的问题是我倾向于绑定到根元素的 children 属性,它返回一个儿童列表。现在孩子们并没有真正在视图中,就像我不能立即调用 editview.addnew() 或过滤孩子一样。问题是我如何确保孩子们也在视图中和他们的孩子等等。如果模型返回一个视图,我应该为每个子类型甚至每个父创建单独的视图吗?

另一件事是,如果我允许编辑,我应该将 Collections 直接放入 IEditableCollectionView 还是先将其包装在 ICollectionView 中(为什么会更好)?

是否有一个很好的指南来使用不仅仅是纯基础的视图?

0 投票
1 回答
81 浏览

.net - 如何过滤网格中显示的不断更新的集合?

假设我有一个显示“问题”的 WPF 应用程序。问题可以有不同的状态,例如“未决”和“已回答”。问题存储在ObservableCollection中并显示在DataGrid上。

我想在顶部有一个切换按钮,可以在“打开”和“已回答”问题之间切换。当用户单击“打开”按钮时,网格应仅显示未解决的问题,而当用户单击“已回答”按钮时,应仅显示已回答的问题。

这些对象不断地被另一个线程更新(每秒)。此外,它们的状态可以从另一个线程更改,并且需要更新网格。

过滤这个集合的好方法是什么?现在我正在使用 ICollectionView 并在问题状态更改时调用 Refresh(),但是由于在“AddItem/EditItem”事务发生时调用刷新而出现错误。

谢谢。

0 投票
1 回答
793 浏览

c# - IEditableCollectionView 添加的对象类型是什么?

使用 IEditableCollectionView addNew() 方法添加对象相当不错。但是,我不确定它与我拥有的通用代码的效果如何。

我有一个基类的 ObservableCollection。根据用户想要看到的内容,可以用 DerivedA 或 DerivedB (或多个其他派生类型类)填充。它从来没有超过 1 种类型。我对此有以下问题,其中 1 号是主要问题。

1)调用addNew()方法的时候添加了什么类型的对象。我猜是基数,但不确定。如果 Base 是抽象的呢?无论如何我可以确保它添加了一个特定的类型,或者它是否已经实现了它已经添加了最相关的类型?

2) 在使用派生类时,我是否要求 ObservableCollection 遇到麻烦?

3)派生类都单独实现 IEditableObject 但 Base 没有。我的愚蠢是错误的,因为我认为当你实现时你必须定义方法。我可以将它们定义为抽象,然后在派生类中覆盖它们,对吗?如果我不这样做,我会遇到 IEditableCollection 的麻烦。

更新:

我成功地修复了第 3 项)基类实现 iEditableObject 并将抽象虚拟方法扔到它的派生类中。addNew 方法不起作用,即使列表中填充了派生项。

我见过一种半解决方案。.Net framework 4.0 实现了一个名为 AddNewItem 的新方法,您可以在其中定义要添加的项目。应该解决非无参数构造函数和基类的问题。但是我在 3.5 工作

有什么我能做的吗?

0 投票
2 回答
1852 浏览

wpf - 带有 ListViewCollection 的 WPF Listview - Listview 不反映集合的更改。

我有一个绑定到 ListCollectionView 的列表视图。LCV 在任何时候都有一个排序描述。我正在以这种方式更新集合:

但是,当我这样做时,列表视图的项目没有任何反应。如果我重新排序列表,则会反映更改。集合上的 Refresh() 也会更新列表视图,但这就像使用炸药棒打开汽水罐一样,从我收集的内容来看。

有没有人有任何想法。我上面的代码看起来像我在网络上看到的例子,所以我不认为这是问题所在。人们是否知道任何常见的错误,也许与排序有关?我让它工作,现在它没有,我不知道是什么破坏了它。

提前致谢。

0 投票
2 回答
2773 浏览

c# - 为什么使用 IEditableCollectionView?

我有一个项目要完成(感谢一名员工在截止日期前辞职)。

他一直在 WPF 工作。界面看起来很酷,但它永远无法从公司的旧数据访问 DLL 中收集数据。(重写 DLL 是个好主意,但在截止日期前的短时间内是不可行的)收集数据才是重点!

该项目被扔给我,但我不是 WPF 开发人员。我被告知要让它与 WinForms 一起工作,这是我所知道的。我在几个小时内完成了一个 WinForm 界面,它看起来和 WPF 版本一样好......而且我知道它在做什么。WPF 涉及到我还没学过的voo-doo。

WPF 项目中使用了一些东西,我需要了解它们的作用,而我没有时间完全重新设计它们。

业务逻辑层ObservableCollection向 WPF 接口返回一个。

WPF 接口接受并使用其参数将其ObservableCollection存储在 a中。CollectionViewSourceSource

好的,我立即考虑DataGridView控制并使用其中的DataSource参数。

我走上正轨了吗?

的意义IEditableCollectionView何在?有必要吗?如果没有,我应该删除所有对它的引用吗?