将枚举类型的数据绑定到控件
.NET Framework中的數(shù)據(jù)綁定有幾個很酷的功能。你不僅可以將集合、數(shù)組、DataTable和DataView對象綁定到列表綁定(list-bound)的控件(如DataGrid和ListBox),你還可以用枚舉(enum)類型。該功能很有用,尤其將它用于自定義的枚舉時。自定義的枚舉代表了一個應(yīng)用程序特定模塊的許多邏輯上相關(guān)的選項。
一個枚舉包含一組指定的常量和它們的值。缺省情況下,枚舉中值的類型是Int32,但你可以在聲明時設(shè)置它的類型。.NET Framework Enum類提供了一些基本的功能, enum實例可以讓應(yīng)用程序使用這些功能。其中的一個功能就是把一個值轉(zhuǎn)換成它代表的字符串。這個人們期待已久的功能就使我們可以很快地把值轉(zhuǎn)換成指定的常量。你可以在一個特殊的enum值上調(diào)用ToString方法來轉(zhuǎn)換一個值。
Enum類也提供了GetValues方法,它把enum類型的內(nèi)容轉(zhuǎn)換成一個數(shù)組。在內(nèi)容呈現(xiàn)為一個數(shù)組后,你就可以很容易地把它綁定到任何數(shù)據(jù)綁定的控件了。在C#中,你通過下面的代碼用MissingSchemaAction enum的值來填充一個下拉列表:
| dropList.DataSource =Enum.GetValues(typeof(MissingSchemaAction)); |
下面是用Visual Basic .NET代碼完成同樣的事情:
| dropList.DataSource = _Enum.GetValues _(GetType(MissingSchemaAction)) |
GetValues方法創(chuàng)建了一個對象數(shù)組,并用枚舉的值來填充它。當你把對象綁定到一個控件時,ToString方法自動將它們呈現(xiàn)為文本。結(jié)果,你的下拉列表就填充了構(gòu)成enum類型的指定的常量。
你可以用一個類似的工具獲得數(shù)據(jù)綁定的控件的值。在下面的例子中,你將Parse方法用于Enum類。GetValues和Parse都是靜態(tài)的方法:
| MissingSchemaAction msa;msa = (MissingSchemaAction) Enum.Parse(typeof(MissingSchemaAction),dropList.SelectedItem.ToString()); |
在VB.NET中代碼是這樣的:
| Dim msa As MissingSchemaActionmsa = CType( _Enum.Parse(GetType( _MissingSchemaAction), _dropList.SelectedItem.ToString(), _MissingSchemaAction) |
Parse方法接受枚舉類型和代表特殊元素的常量的名字。它返回一個代表根本類型的值的對象。例如,設(shè)想你有下面這樣的一個C#枚舉:
| enum MissingSchemaAction : Int32{Add = 1,Ignore = 2,Error = 3,AddWithKey = 4} |
現(xiàn)在,將這個調(diào)用指令傳送到Parse:
| Enum.Parse(typeof(MissingSchemaAction),"Add"); |
結(jié)果就是與指定的常量相關(guān)的整數(shù)值——就是1。這個值是以原來的形式返回的——Int32或其它類型——而不是以enum類型的值返回的。如果你想讓這個值是枚舉的一個部分,可以將返回的值轉(zhuǎn)換成enum類型。
在VB.NET中你用下面的代碼聲明一個枚舉:
| Enum MissingSchemaAction As Int32Add = 1Ignore = 2Error = 3AddWithKey = 4End Enum |
總結(jié)
以上是生活随笔為你收集整理的将枚举类型的数据绑定到控件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么把系统中的桌面文件夹放到别的盘里
- 下一篇: 虚拟打印的实现-EMF转换成BMP