来自Qt,在我看来,BindingSource类提供了相同的功能,并且打算以与Qt中的QSortFilterProxyModel相同的方式使用。
阅读When is it worth using a BindingSource?及其答案后:
过滤,排序而不更改记录本身的排序顺序(过滤/排序)
还有:
BindingSource可以充当另一个BindingSource的数据源
这些功能与QTortFilterProxyModel在Qt中提供的功能相同。
有Qt和Winforms经验的人能告诉我,我的理解是否正确,如果没有,使用BindingSource和QSortFilterProxyModel之间的最大区别是什么?
答案 0 :(得分:1)
我不是winforms专家,但只是通过阅读它们,它们相似但不同。
所以这里是QSortFilterProxyModel的关键概念。这有多少适用于BindingSource
或不同我不能告诉你太多。
Qt中的ProxyModel是一个在基本模型之上分层的抽象模型(看起来像这里有一个BindingSource)。虽然您无法为此添加控件等,因为它们就是:数据模型。您可以将此ProxyModel或仅一个普通模型附加到视图,此视图会关注要显示的控件(模型可以提供“提示”)。
SortFilterProxyModel也可以根据字符串对数据进行排序和过滤。您可以从中派生出来进行自定义排序/过滤。没有货币管理等。
Qt还鼓励这种方法在您需要时编写自己的ProxyModel(您也可以将多个ProxyModel层叠在一起)。 这与BindingSources的不同之处以及您可以自定义它们的数量我不知道
更改通知可以通过Qt中的常用信号和插槽概念进行管理,但这里的责任在于ProxyModel下面的Model而不是ProxyModel。
结论:看起来他们有类似的概念,两者(意外地)支持排序和过滤(可能因为它只是一个常见的用例< / em>)但是他们所使用的模型 - 视图系统的基本概念看起来是不同的。
再次,这是没有任何或非常粗糙的winforms知识,也许其他人可以回答那个部分,然后你有一个很好的比较。