我對WPF有點新,並且需要一些關於如何爲DataGrid實現自定義分組設置的建議。我知道普通的wpf DataGrid可以進行分組,但是可能會將500k條記錄轉移到蹩腳的第三世界網絡上,然後讓蹩腳的,便宜的和5年以上的pc抓取數據不是一種選擇。在非洲,公司通常會投資半正式的服務器設置,但是當涉及到最終用戶的機器時......可悲的是任何仍然可以啓動的任何事情都可以實現。因此,我需要在服務器上完成所有工作,以使最終用戶PC只需執行最低限度的操作即可僅渲染屏幕上所需的內容。 Winforms,wpf,甚至HTML都是這種情況。WPF DataGrid自定義分組
首先,我們已經有一個運行良好的web前端。這是我們的概念驗證版本。目前,我正在對大部分後端邏輯進行重新編譯,以便在wcf服務中運行,然後讓web和wpf前端連接到相同的服務。
我已經做了我的分組服務器端以及排序順序,然後只需要將我需要發送到結果集前端的幾條記錄拉出來。我將每一行標記爲Header,Data或Footer,然後在客戶端上,我將從結果集的頂部運行到底部,並適當地呈現每行。以下是我們或多或少需要的一個示例,頁面計數設置爲10.請注意,這只是隨機垃圾數據。
什麼是重要的,這裏要注意的是,只有那些一個Open Group的一部分記錄被髮送到客戶端。圖像中的5個關閉組在客戶端前端沒有任何子記錄。只有當組爲Open時,來自服務器的結果集才包含要在屏幕上呈現的子記錄。如果您計算組標題和詳細信息行,您將看到它最多可以添加10.組頁腳不計入頁面大小限制。因此,總共我只從服務器向客戶端發送了20個(頁腳在結果集中)信息行,而不是實際在表中有61列的1000條記錄。
這樣做是waaaaayyyy比可能發送10000條記錄到用戶機器然後做用戶機器上的排序,分組和分頁更快。
我可以在wpf datagrid中使用我擁有的或類似的東西嗎?如何獲取數據網格以呈現3種不同類型的行,如上所示? 或者我不應該看DataGrid並做其他事情來呈現數據?