問題タブ [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.

0 投票する
2 に答える
1407 参照

.net - 読み取り専用PropertyGrid

次の要件を持つPropertyGridにオブジェクトを表示する必要があります。オブジェクトとそのサブオブジェクトは読み取り専用であり、PropertyGridのCollectionEditorsをアクティブ化できる必要があります。

必要なものに厳密に一致するサンプルを見つけましたが、理解できない予期しない動作があります。異なるオブジェクトごとに複数のPropertyGridがあります。SetBrowsablePropertiesAsReadOnlyでは、1つのオブジェクトをループしますが、驚くべきことに、プロジェクト内のすべてのPropertyGridが読み取り専用になります。誰かが私を助けることができますか?コードは次のとおりです。

0 投票する
1 に答える
1707 参照

.net - オブジェクトとそのサブオブジェクトのすべてのプロパティを取得する方法

すべてのサブオブジェクトをループし、プロパティを読み取り専用に変更する必要があることを除いて、これと同様の質問があります

以下の私のコードを確認してください。この1つは、メインオブジェクトのみをループします。そのサブオブジェクトをループしようとすると、オーバーフローが発生しました。

ありがとう。

0 投票する
1 に答える
8573 参照

c# - 型の既定の PropertyDescriptors を取得します

PropertyGridを実装して、オブジェクト タイプの表示方法をカスタマイズしていますICustomTypeDescriptor。キーと値の単一の辞書に格納される独自のカスタム プロパティをユーザーが作成できるようにしています。これらの値のすべてを作成PropertyDescriptorsし、プロパティ グリッドで表示できます。ただし、オーバーライドメソッドPropertyGridではなく、リフレクションによって設定された場合に表示されるすべての既定のプロパティも表示したいと考えています。ICustomTypeDescriptor.GetProperties

これで、オブジェクトの型を取得してから を取得する方法がわかりましたが、これはnotGetProperties()の配列を返します。では、そのタイプのオブジェクトをオブジェクトに変換して、カスタムでコレクションに含めるにはどうすればよいでしょうか?PropertyInfoProperyDescriptorPropertyInfoPropertyDescriptorPropertyDescriptors

0 投票する
3 に答える
2140 参照

c# - ReadOnlyAttributeとPropertyDescriptor.IsReadOnly()

PropertyDescriptorメソッドの値を返すaを使用することと、IsReadOnly()メソッドに関連付けられているaを使用することの違いは何ReadOnlyAttributeですか?

0 投票する
2 に答える
5730 参照

c# - TypeDescriptor.GetProperties(thisType) は、書き込み専用のプロパティを返します

タイプからすべてのプロパティを取得しようとしていますが、TypeDescriptor.GetProperties(thisType) を使用すると、セッターとゲッターの両方を持つプロパティのみが提供されます。私は書き込み専用のプロパティを持っています。それらを含む PropertyDescriptorCollection を取得する方法はありますか?

/アスガー

0 投票する
1 に答える
1011 参照

c# - カスタム プロパティ記述子と階層のフラット化

オブジェクト階層のフラット化をサポートするために使用するカスタム プロパティ記述子があります。

これを達成するために、サブクラスPropertyDescriptor化し、値を取得する「次の」(子) プロパティにリンクされたリストを保存します。

これにより、「フラット」な方法でサブプロパティをグリッド (Excel へのエクスポートなど) にバインドできます。

例えば。Grid(バインドされたプロパティ、キャプション)

問題は、重複した名前の列を追加すると、一意のキャプションがあるという事実に関係なく、最初のキャプションのプロパティが取得されますが、正しいヘッダーが挿入されることです。

何か案は?

0 投票する
1 に答える
6897 参照

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" が必要です。

0 投票する
1 に答える
1310 参照

propertygrid - PropertyDescriptorsをオーバーライドするのではなく、クラスに追加するにはどうすればよいですか?

ICustomTypeDescriptorを実装するクラスがある場合は、 GetProperties()メソッドをオーバーライドして、クラスのすべてのプロパティをカスタムPropertyDescriptorsに完全に置き換えることができます。

しかし、クラスの既存のプロパティを保持し、クラスに追加のプロパティを追加したい場合はどうなりますか?既存のクラスプロパティに追加されるカスタムプロパティ記述子のセットを返す方法はありますか?

たとえば、プロパティグリッドに表示されるカスタムプロパティをユーザーがプログラムで定義できるようにしたいとします。カスタムプロパティの値はDictionary(文字列キー、オブジェクト値)コレクションに格納されます。また、キー値に基づいてこのコレクションから値を読み書きするPropertyDescriptorsを追加したいと思います。

IExtenderProviderは、あるクラスのプロパティを別のクラスに追加するだけなので、機能しないと思います。ただし、実行時にプロパティを動的に追加および削除できる必要があります。ICustomTypeDescriptorも実装するIExtenderProviderクラスを使用して、追加するプロパティを実行時に把握できるようにすることはできますか?

0 投票する
1 に答える
1049 参照

c# - デフォルトのPropertyDescriptorをプロパティに設定するにはどうすればよいですか?

プロパティのデフォルトのPropertyDescriptorを設定するための属性はありますか?プロパティに属性を追加し、PropertyDescriptorを指定したいだけです。そして、PropertyDescriptorのインスタンスが作成されます。.netフレームワークで属性が見つかりません。