問題タブ [propertydescriptor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 読み取り専用PropertyGrid
次の要件を持つPropertyGridにオブジェクトを表示する必要があります。オブジェクトとそのサブオブジェクトは読み取り専用であり、PropertyGridのCollectionEditorsをアクティブ化できる必要があります。
必要なものに厳密に一致するサンプルを見つけましたが、理解できない予期しない動作があります。異なるオブジェクトごとに複数のPropertyGridがあります。SetBrowsablePropertiesAsReadOnlyでは、1つのオブジェクトをループしますが、驚くべきことに、プロジェクト内のすべてのPropertyGridが読み取り専用になります。誰かが私を助けることができますか?コードは次のとおりです。
.net - オブジェクトとそのサブオブジェクトのすべてのプロパティを取得する方法
すべてのサブオブジェクトをループし、プロパティを読み取り専用に変更する必要があることを除いて、これと同様の質問があります
以下の私のコードを確認してください。この1つは、メインオブジェクトのみをループします。そのサブオブジェクトをループしようとすると、オーバーフローが発生しました。
ありがとう。
c# - 型の既定の PropertyDescriptors を取得します
PropertyGrid
を実装して、オブジェクト タイプの表示方法をカスタマイズしていますICustomTypeDescriptor
。キーと値の単一の辞書に格納される独自のカスタム プロパティをユーザーが作成できるようにしています。これらの値のすべてを作成PropertyDescriptors
し、プロパティ グリッドで表示できます。ただし、オーバーライドメソッドPropertyGrid
ではなく、リフレクションによって設定された場合に表示されるすべての既定のプロパティも表示したいと考えています。ICustomTypeDescriptor.GetProperties
これで、オブジェクトの型を取得してから を取得する方法がわかりましたが、これはnotGetProperties()
の配列を返します。では、そのタイプのオブジェクトをオブジェクトに変換して、カスタムでコレクションに含めるにはどうすればよいでしょうか?PropertyInfo
ProperyDescriptor
PropertyInfo
PropertyDescriptor
PropertyDescriptors
c# - ReadOnlyAttributeとPropertyDescriptor.IsReadOnly()
PropertyDescriptor
メソッドの値を返すaを使用することと、IsReadOnly()
メソッドに関連付けられているaを使用することの違いは何ReadOnlyAttribute
ですか?
c# - TypeDescriptor.GetProperties(thisType) は、書き込み専用のプロパティを返します
タイプからすべてのプロパティを取得しようとしていますが、TypeDescriptor.GetProperties(thisType) を使用すると、セッターとゲッターの両方を持つプロパティのみが提供されます。私は書き込み専用のプロパティを持っています。それらを含む PropertyDescriptorCollection を取得する方法はありますか?
/アスガー
c# - カスタム プロパティ記述子と階層のフラット化
オブジェクト階層のフラット化をサポートするために使用するカスタム プロパティ記述子があります。
これを達成するために、サブクラスPropertyDescriptor
化し、値を取得する「次の」(子) プロパティにリンクされたリストを保存します。
これにより、「フラット」な方法でサブプロパティをグリッド (Excel へのエクスポートなど) にバインドできます。
例えば。Grid(バインドされたプロパティ、キャプション)
問題は、重複した名前の列を追加すると、一意のキャプションがあるという事実に関係なく、最初のキャプションのプロパティが取得されますが、正しいヘッダーが挿入されることです。
何か案は?
c# - PropertyDescriptor にカテゴリ属性を追加する
カテゴリも追加して、PropertyGrid でより整理された方法で表示するカスタム PropertyDescriptor のセットがあります。PropertyDescriptor の各タイプを特定のカテゴリに分類したいと考えています。
TypeDescriptor.AddAttributes() を使用して既存の PropertyDescriptor に属性を追加しようとしましたが、カテゴリ属性が追加されません。
また、以下に示すように、PropertyDescriptor の 1 つのコンストラクターで TypeDescriptor.AddAttributes() を使用してみました。しかし、それも機能しません。
なぜ自分がしていることをしているのかを詳しく説明するのに時間をかけたくありません。ただし、上記の例では、IntrinsicPropertyDef は、名前、表示名、およびタイプを含むプロパティを定義するクラスです。したがって、propDef.Attributes には DisplayNameAttribute が含まれます。
IntrinsicPropertyDef は、2 つの異なるカスタム PropertyDescriptors IntrinsicPropertyDescriptor および InferedIntrinsicPropertyDescriptor で表示できます。すべての IntrinsicPropertyDescriptor にはカテゴリ属性 "Intrinsic Properties" が必要であり、すべての InferedIntrinsicPropertyDescriptor にはカテゴリ属性 "Inferred Intrinsic Properties" が必要です。
propertygrid - PropertyDescriptorsをオーバーライドするのではなく、クラスに追加するにはどうすればよいですか?
ICustomTypeDescriptorを実装するクラスがある場合は、 GetProperties()メソッドをオーバーライドして、クラスのすべてのプロパティをカスタムPropertyDescriptorsに完全に置き換えることができます。
しかし、クラスの既存のプロパティを保持し、クラスに追加のプロパティを追加したい場合はどうなりますか?既存のクラスプロパティに追加されるカスタムプロパティ記述子のセットを返す方法はありますか?
たとえば、プロパティグリッドに表示されるカスタムプロパティをユーザーがプログラムで定義できるようにしたいとします。カスタムプロパティの値はDictionary(文字列キー、オブジェクト値)コレクションに格納されます。また、キー値に基づいてこのコレクションから値を読み書きするPropertyDescriptorsを追加したいと思います。
IExtenderProviderは、あるクラスのプロパティを別のクラスに追加するだけなので、機能しないと思います。ただし、実行時にプロパティを動的に追加および削除できる必要があります。ICustomTypeDescriptorも実装するIExtenderProviderクラスを使用して、追加するプロパティを実行時に把握できるようにすることはできますか?
c# - デフォルトのPropertyDescriptorをプロパティに設定するにはどうすればよいですか?
プロパティのデフォルトのPropertyDescriptorを設定するための属性はありますか?プロパティに属性を追加し、PropertyDescriptorを指定したいだけです。そして、PropertyDescriptorのインスタンスが作成されます。.netフレームワークで属性が見つかりません。