我是WPF的新手,需要一些关于如何为DataGrid实现自定义分组设置的建议。我知道正常的wpf DataGrid可以进行分组,但可能会在糟糕的第三世界网络上传输500k记录,然后让这些糟糕,便宜,5年以上的PC爬行数据不是一种选择。在非洲,公司通常会投资半体面的服务器设置,但是当谈到最终用户的机器时......遗憾的是,任何仍然可以启动的设备都可以。因此,我需要在服务器上完成所有工作,以至于最终用户pc只需要做最小的工作,只能渲染屏幕上所需的内容。 Winforms,wpf甚至HTML都是这种情况。
首先,我们已经有一个运行良好的Web前端。这是我们的概念证明版本。目前我正在努力重新编写大部分后端逻辑以在wcf服务中运行,然后将web和wpf前端连接到同一服务。
我已经按照排序顺序执行分组服务器端,然后只将需要发送的几条记录从结果集中拉出到前端。我将每一行标记为标题,数据或页脚,然后在客户端上我只是从结果集的顶部运行到底部并适当地渲染每一行。下面是我们或多或少想要的一个例子,页面数设置为10.注意它只是随机的垃圾数据。
这里需要注意的是,只有属于Open Group的记录才会发送给客户端。图像中的5个封闭组在客户端前端没有任何子记录。仅当组处于打开状态时,来自服务器的结果集才会包含要在屏幕上呈现的子记录。如果计算组标题和详细信息行,您将看到它总计为10.组页脚不计入页面大小限制。因此总的来说,我只从服务器向客户端发送了20个(页脚在结果集中)信息行,而不是表中实际存在61列的1000条记录。
这样做比waaaaayyyy快,可能会向用户计算机发送10 000条记录,然后在用户计算机上进行排序,分组和分页。
我可以在wpf数据网格中使用我拥有的或类似内容吗?如何让datagrid呈现3种不同类型的行,如上所示? 或者,我不应该查看DataGrid并执行其他操作来呈现数据吗?
答案 0 :(得分:0)
决定制作我自己的" DataGrid"使用带有列和行定义的WPF网格。另一个选项似乎是WPF表,它似乎有点像HTML表。
我现在只需实现自己的拖放即可更改列顺序并允许对列标题点击进行排序。已经想出了拖放,所以正在取得进展。