【发布时间】:2011-11-13 21:47:29
【问题描述】:
我有一些想要显示的数据(大约 1000 行)。我希望用户能够动态过滤和排序数据。我还必须能够保存和加载数据。我对数据库比较陌生,需要您的帮助来决定哪种方法是最好/最合理的:
第一种变体: 这是我目前的做法。我正在使用绑定到 RowItems 的 ObservableCollection 的 ListView/GridView。我现在可以使用视图进行排序和过滤。保存和加载是通过序列化完成的。
第二个变种: 使用数据库来存储数据。然后将数据加载到与上述相同的业务对象中。
第三种变体: 将 ListView 直接绑定到数据库。我刚刚发现这在某种程度上是可能的,但在细节上仍然有些模糊。特别是在排序和过滤方面(可以通过数据库查询完成吗?)
第四变种: 将数据存储在数据库中。使用业务对象的 ObservableCollection 进行绑定。但是通过 SQL 查询过滤(和排序?)。
这些是我必须满足我的要求的想法。我想知道哪一个是最好的/最简单的/表现最好的/等等。或者如果您建议其他方法。enter code here
【问题讨论】:
-
小心直接绑定到数据库,因为某些 WPF 控件会延迟加载数据。这对您的应用程序意味着,当用户滚动列表时,WPF 将进行更多的数据库调用,这会使 GUI 卡顿。
-
@Wer2:我直接绑定到数据库的动机是我必须将所有数据保存在内存中,否则。或者这不是我想的那么大的劣势?
-
这取决于你的数据集有多大。如果您的数据太大而无法保存在内存中,您可能需要考虑分块加载它,而不是让 WPF 处理它。
标签: wpf database listview binding