TypeDescriptor.CreatePropertyはプロパティを追加しません
-
05-07-2019 - |
質問
TypeDescriptor.CreatePropertyを使用してプロパティグリッドに追加のプロパティを表示するためにタイプにプロパティを追加しようとしていますが、この新しいプロパティは追加されず、そのタイプでTypeDescriptor.GetPropertiesを呼び出してプロパティを検査します、このプロパティは存在しません。
見落としている、または見落としている可能性がありますか?私が覚えている限り、これは基本的で単純なシナリオです。
呼び出しは次のとおりです。 TypeDescriptor.CreateProperty(typeof(MovieMenuItem)、" ExternalMediaLocation&quot ;, typeof(string)、null);
解決
CreateProperty
は、問題の型のリフレクションベースの PropertyDescriptor
を返します(たとえば、 AddProperty
ではありません)。ここでのシナリオは何ですか? DataGridView
に追加データを表示するだけの場合、最も簡単なオプションは、追加の非バインド列をグリッドに追加することです。
実行時に型を 拡張できますが、リストには2つの主なオプションがあります:
-
ITypedList
(リストの各インスタンスが異なる列を持つことができる場合)-この回答 -
TypeDescriptionProvider
-タイプごとにカスタムプロパティを追加できます(最終的には、最初の例と同様にPropertyDescriptor
を記述することになりますが、フックは異なります)
リストベースのメタデータを取得する方法の完全なルールは、この回答にありますa>
所属していません StackOverflow