日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# wpf中DataGrid 支持汇总行

發布時間:2025/3/8 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# wpf中DataGrid 支持汇总行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近有一個需求,需要匯總金額,份額等字段。我們使用的是原生的WPF控件,自己開發了一套Template。而沒有使用比較成熟的第三方控件。所以這個功能得自己開發。并且要做成控件層次的功能。

當然也可以這樣做,在ItemSource數據中手動匯總一行并顯示。但這樣做是純業務層次的東西。且每個不同的界面。要做不同的業務邏輯處理。太LOW。

思路: 我們先來看下WPF原生DataGrid的模板,發現里面其實是一個ItemsPresener來呈現所有的數據行。第一種想法是,那么我們是否可以在ItemPresenter下面再放一個ItemPresenter來顯示為匯總行。理想很豐滿。問題是,看不到ItemPresenter是如何來呈現 ItemSoruce里的數據的源代碼。WPF似乎并沒有對這些實現做開源,事實上,我們對ItemPresenter的工作原理一無所知,只知道為ListBox等包含

itemPresenter控件的列表類控件,指定items或者itemsource后,控件會為我們呈現數據。(有大神指導怎么看源碼的么?)。

退而求其次,新的想法是。為什么不在ItemsPresener下方。再放一個DataGrid那?列完全和上方的一樣,對需要匯總的列做數據匯總。

?

那么我們來改造這個模板,新的模板代碼如下

?

?然后我們為這個新的模板創建一個新的類 ,繼承自DataGrid

public class DateGridTotal:DataGrid{}

在ApplyTemplate時間處理函數中,構造這個新增的TotalRow,注意這里的綁定,這是整個程序的原理

最后在?OnItemsSourceChanged()函數中,根據控件的Itemsource 數據,生成匯總行的數據,并綁定到匯總行DATAGRID的itemsource。

?

?

?大概思路和實現就是這樣啦。可以參考附件源碼

?

?

轉載于:https://www.cnblogs.com/CSSZBB/p/8919805.html

總結

以上是生活随笔為你收集整理的C# wpf中DataGrid 支持汇总行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。