第一次聽到這個概念,你是否有點陌生?msdn上也沒有特意的去說明。不要看到這個名詞不太熟悉,其實資料批示,玩過c#的人都會非常熟悉,所謂資料批示,其本質就是特性(attribute),怎麼樣,現在有點似曾相識了吧?
attribute可以附加在命名空間、類,以及成員定義上的一種「特殊描述」,如下所示,這種標誌列舉相信大家在使用com互操作性或者引入平台api的時候用得很多了。
特性在使用的時候,可以忽略「attribute」,如上面的,可以寫成flags。
silverlight(銀光)中的「資料批示」概念現在不陌生了,那麼,它為何要叫資料批示呢?
因為這些特性類都是用於定義實體類的元資料的,它很像sql裡面的字段屬性,如是否為只能,是否為自增長,是否為主/外來鍵等。
這些類都定義在system.componentmodel.dataannotations命名空間裡面,有興趣的可以查閱msdn,這裡當然不會逐個列舉,我們只挑常用的來討論。
好的,今天我們討論第乙個,相信也是使用頻率最高的——displayattribute。
name屬性:在ui中顯示字段標籤,下面看了示例你就明白了。
description:對欄位(屬性)的描述,可以在ui中向使用者顯示工具提示資訊。
order:欄位在使用者介面的顯示順序,這個不用介紹了,和以前的listview或datagridview類似(system.windows.forms中)。
ok,就這幾個,其實的屬性不那麼重要,其實使用name和description就足夠了,來,看看下面這個實體類(實體類這玩意兒嘛,你就理解為對客觀事物的一種抽象,相當於資料庫中的表,用e-r圖畫出來可能生動一點)。
public class song [display(name = "歌曲名", description = "請輸入歌曲名。")] public string name set } [display(name = "歌手", description = "請輸入歌手姓名。")] public string singer set } }
這是乙個歌曲類,它有兩個屬性:歌名和歌手,在上面的**中,你應該看到了displayattribute的用法了。
但你一定有些迷惑,不要緊,所見即所得,執行程式一看便知曉。
上面用到了label控制項,這個控制項不在.net類庫中定義,它在sdk的system.windows.controls.data.input.dll中,所以,使用前一定要把它新增到專案的引用列表中,這個就不用說了,玩vs的人都知道,省去38個字。
好,看看上面的截圖,發現了沒?label上顯示的,正是我們剛才定義的displayattrbute的name屬性。
我們把兩個textbox分別繫結到name和singer屬性。
你一定發現,在文字框的右側有乙個像「i」的符號,然後你把滑鼠移到上面,別動,你就看到那幾個字,記得嗎?這幾個字在**定義的?對了,就是displayattribute的description屬性。
現在,你感悟了沒有?那麼,label是如何繫結起來的呢?
把target設定為要繫結的控制項名就行了,如這裡是繫結到文字框,因為繫結路徑不複雜,所以,無需設定屬性路徑。
好了,現在我就把xaml放出來,亮亮相。
大家不妨自己動手試試,很有意思的。
陣列特性之我見 陣列的鍊錶特性
定義乙個簡單的五維整型陣列 int ppppp 2 2 2 2 2 如右圖所示 我在此處形象的用帶有 位址 和 名字 兩個屬性的 坑 來表示變數,我說陣列就是乙個 大坑 這個 大坑 裡有層次的巢狀著一些 小坑 而這些 小坑 和 大坑 之間是像鍊錶一樣,一環套一環的 以上述5維陣列為例,從最小的 坑 ...
佈線之我見
前段時間參與了網路實驗室的整個實施過程,有些感想,在此涼涼,一起學習下。在這之前,佈線給我的認識就是 網線連電腦,通了就成!現在看來我真是把機房佈線想的過於簡單了。事實上機房建設是一項集網路技術 裝飾 安全防範 防火 抗乾攏等多學科的綜合系統工程,在實施的過程中,不光要講究能保證業務,更要講究美觀與...
需求之我見
更換手機,前乙個手機花了不少錢,但是用的不爽,介面難看 電池用的快 訊號不好 攝像頭畫素低 掉漆快,任何乙個小小的問題點,都成為了我不再使用這個品牌的理由。低階 花很多錢,還受氣 在親自辦理寬頻的過程中,電信提出了強制打包的其他產品,比如 我只要寬頻,卻推出寬頻 網路電視的 除此之外沒有其他 買不買...