datatable,你有多豐富:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
輕輕的打開reflector.exe,按下f3搜尋,輸入datatable,輕按兩下定位,右鍵,disassemble之後,
悄悄的點一下最下面的 expand methods,再從容的把它copy出來,我們才發現。。6000多行的代碼
我們常用的datatable一個類,才用了6000多行代碼實作,跟我們以前寫的,一個類寫到一千多,就覺得有點過了
大巫見小巫啊!
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
解析:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
當然了,不是說一個類代碼越多,性能就一定不好。至少我們還是那麼多人前擁後擠的在繼續使用。
大而廣,考慮詳細,是因為面對的人群多。
針對目前這個資料通路層中,我們所需要的功能,并不需要那麼多,我們隻需要最常用的功能即可了,
即可以把表直接綁定控件,并通路資料行,資料列,資料單元和資料的資料庫類型,
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
是以:
我們開始了自定義,在自定義中,我們并不繼承和datatable相關的東西。我們一步一步的建構屬于自己的輕量級的table類
下面開始構造自己的mdatatable系列類:
一.單元格:mdatacell
我們先來看我們常用的表現的一行資料,如下圖:
描述:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
圖檔上一覽,第一行是列頭,接下來全是資料行,那麼單元格應該包含哪些内容?這,其實是個問題。如果我們從界面上看,一個單獨的單元格,就隻有value了,
可是如果隻是value,那它又缺少了意義,因為你不知道它是屬于什麼列,簡單說,如果沒有列頭,你的資料本身的意義,就變的很難了解,
除非這個值有很深的解釋意義包含在裡頭。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
說明:
是以,一個單元格還應該包括一個列頭解釋,于是。就會出現這麼一個現實,如果一個單元格是由頭和值組成的,那麼每一行資料,都會包括重複的列頭。
我們再仔細觀察那圖,實際上,隻有一個列頭,其餘都是值...于是,在這裡,就産生了一個可以思考的問題。
單元格需要由頭和值組成,可是,又要保證資料再多,也隻能存在一個表頭,怎麼将這個問題轉化在設計的類中??
下節解說!