簡體   English   中英

WPF DataGrid自定義分組

[英]WPF DataGrid custom grouping

我是WPF的新手,並且需要一些有關如何為DataGrid實現自定義分組設置的建議。 我知道普通的wpf DataGrid可以進行分組,但是可能無法通過糟糕的第三世界網絡傳輸50萬條記錄,然后讓糟糕,便宜且有5年以上歷史的PC抓取數據。 在非洲,公司通常會在半成品服務器上進行投資,但是對於最終用戶機器……可悲的是,任何仍然可以開機的機器都可以。 因此,我需要在服務器上進行所有工作,以使最終用戶PC只需要做最少的工作即可僅渲染屏幕上所需的內容。 Winforms,wpf甚至HTML就是這種情況。

首先,我們已經有一個運行良好的Web前端。 這有點像我們的概念證明版本。 當前,我正在重新設計大多數后端邏輯,以使其在wcf服務中運行,然后將web和wpf前端連接到同一服務。

我已經完成了分組服務器端的排序順序,然后只從結果集中提取了需要發送到前端的幾條記錄。 我將每一行標記為Header,Data或Footer,然后在客戶端上,我從結果集的頂部一直運行到底部,並適當地渲染每一行。 下面是我們或多或少想要的示例,並將頁面數設置為10。請注意,這只是隨機的垃圾數據。

例

這里要注意的重要一點是,只有屬於Open Group的記錄才發送到客戶端。 圖像中的5個封閉組在客戶端前端沒有任何子記錄。 僅當組為“打開”時,來自服務器的結果集才會包含要在屏幕上呈現的子記錄。 如果您計算組頁眉和詳細信息行,您將看到總計為10。組頁腳不計入頁面大小限制。 因此,總共我只從服務器向客戶端發送了20行(結果集中有頁腳)信息,而沒有在表中實際發送有61列的1000條記錄。

這樣做的速度要比潛在地向用戶計算機發送10000條記錄然后在用戶計算機上進行排序,分組和分頁要快得多。

我可以在wpf數據網格中使用我擁有的或類似的東西嗎? 我如何獲得數據網格以呈現3種不同類型的行,如上所示? 還是不應該查看DataGrid並做其他事情來呈現數據?

決定使用帶有列和行定義的WPF網格來制作自己的“ DataGrid”。 另一個選擇似乎是WPF表,它的工作方式似乎類似於HTML表。

現在,我只需要實現自己的拖放操作即可更改列順序並允許對列標題單擊進行排序。 已經找到了拖放功能,因此正在取得進展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM