Silverlight之我見 資料批示(1)

2021-08-31 23:16:02 字數 1589 閱讀 5116

第一次聽到這個概念,你是否有點陌生?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維陣列為例,從最小的 坑 ...

佈線之我見

前段時間參與了網路實驗室的整個實施過程,有些感想,在此涼涼,一起學習下。在這之前,佈線給我的認識就是 網線連電腦,通了就成!現在看來我真是把機房佈線想的過於簡單了。事實上機房建設是一項集網路技術 裝飾 安全防範 防火 抗乾攏等多學科的綜合系統工程,在實施的過程中,不光要講究能保證業務,更要講究美觀與...

需求之我見

更換手機,前乙個手機花了不少錢,但是用的不爽,介面難看 電池用的快 訊號不好 攝像頭畫素低 掉漆快,任何乙個小小的問題點,都成為了我不再使用這個品牌的理由。低階 花很多錢,還受氣 在親自辦理寬頻的過程中,電信提出了強制打包的其他產品,比如 我只要寬頻,卻推出寬頻 網路電視的 除此之外沒有其他 買不買...