方案一:Grid+TextBlock嵌套DataGrid方式。
該方案是現在項目中已使用的方案。實現起來比較簡單,但不具有通用性,不同數據DataGrid需要指定不同的TextBlock跨不同列。實現起來局限性,目前不能凍結列。
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/1e414159-70f6-4be3-9be5-56e4f3278366
http://blog.sina.com.cn/s/blog_6719a7150100t10o.html
方案二:Wpf包裝 WinForm中的多表頭控件
WinForm中的多表頭控件很成熟,可以用Wpf控件包裝WinForm多表頭控件,但是WinForm和Wpf控件在呈現方式上有差別,會導致樣式和形式上和整體的WPF風格相差很大,將WinForm的樣式調整為WPF樣式比較困難
方案三:第三方控件
目前第三方控件在網上形成巨大的共享資源,其中包括收費的也有免費的,有開源的也有不開源的,合理的使用第三方控件將使項目組的工作事半功倍。比如項目中有些復雜的業務邏輯、有些絢麗的效果需要有專門的定制控件才能完成,這個時候我們會考慮到是項目組自己開發還是用第三方的控件,其實很多時候我們都會權衡時間和財力來決定,比如時間很緊且項目組人員都沒有空余做這些事情
(1)ComponentOne FlexGrid
(2)Developer Express, 該第三方控件功能強大。
(3) Essential Studio 2012中的 GridDataControl Stocked Headers Demo
(4)Telerik for Wpf 中的GridView包含多表頭功能。該第三方控件功能強大。