■68838 / inTopicNo.1) |
EnumにTypeConvertorで設定した日本語名を取得 |
□投稿者/ むぅ (7回)-(2013/11/21(Thu) 14:07:44)
|
分類:[C#]
VS2010 C# .net3.5 Windows7 32/64bit
お世話になります。
PropertyGridに選択したオブジェクトのプロパティを日本語に表示するため、 以下のサイトを参考にTypeConvertorで実装しています。
●PropertyGridコントロールに表示されるプロパティ名を変更するには? ●http://www.atmarkit.co.jp/fdotnet/dotnettips/291pgridjapan/pgridjapan.html
プロパティと設定された値の日本語表記を別のListViewに登録するため、取得したいです。
プロパティ名の取得はできました。
private string GetName<T>(T obTarget) { //Publicメンバを取得する MemberInfo[] members = typeof(T).GetProperties (BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
AttributeCollection attributes = TypeDescriptor.GetProperties(obTarget)[members[nIndex].Name].Attributes; PropertyDisplayNameAttribute NameAttr = (PropertyDisplayNameAttribute)attributes[typeof(PropertyDisplayNameAttribute)]; //NameAttr.PropertyDisplayName で日本語名称を取得できる。
設定された値ですが、Enum型のデータを設定するものがあり、以下のように定義しています。
[TypeConverter(typeof(EnumDisplayNameConverter))] public enum EnumBool { [PropertyDisplayName("Yes")] val0 = 0, [PropertyDisplayName("No")] val1 = 1 }
上記の日本語表記を取得するためにどのようなコードを記載すればよろしいでしょうか。
どちら様かご教示のほど、よろしくお願いしますm(__)m。
|
|