在C#中可以很簡單的透過Enum.GetValues()或是Enum.GetNames()來取得列舉型別中項目的值或是名稱,但是在Silvelright中想要使用同一招的話就會發現,咦!?怎麼行不通了!?Silverlight中的Enum完全不提供Enum.GetValues()和Enum.GetNames()這兩個Method啊!!!~~~
在C#中可以很簡單的透過Enum.GetValues()或是Enum.GetNames()來取得列舉型別中項目的值或是名稱,但是在Silvelright中想要使用同一招的話就會發現,咦!?怎麼行不通了!?Silverlight中的Enum完全不提供Enum.GetValues()和Enum.GetNames()這兩個Method啊!!!~~~
自然在[C#]使用LINQ取出列舉中的所有項目一文中使用的方法在Silverlight中就完全的不管用了,一整個殘念....
不過,我們還是可以透過其他的方式來達到這個目的,就是借重超強大的Reflection來取得列舉型別中的LiteralField,所以這次我們一樣要建立一個EnumHelper,不過內容改為如下:
來個簡單的小範例吧!!
將列舉型別裡面的項目轉成List之後要Binding就是這麼的簡單!!
範例執行的結果如下:
老樣子,最後附上專案原始檔,請自行服用: