問題タブ [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 投票する
1 に答える
693 参照

c# - INotifyPropertyChange イベントとカスタム PropertyDescriptor

カスタム オブジェクト (MCO)DataGridViewへのバインドを使用する単純な Windows フォーム アプリケーションがあります。BindingList<>

また、MCO の既定のプロパティ以外の DataGridView に関する詳細情報を提供する目的で、MCO の型に対して登録するカスタム TypeDescriptor とカスタム PropertyDescriptor を実装しました。カスタム TypeDescriptor の PropertyDescriptorCollection は、親 (MCO の既定の PropertyDescriptor) と 1 つのカスタム PropertyDescriptor から PropertyDescriptor を返します。

すべて問題なくDataGridView、DataSource にバインドすると、表示される列はカスタム TypeDescriptor から返された列に対応します。

また、MCO プロパティが変更されたときに datagridview が更新されるように、MCO に INotifyPropertyChanged を実装しました。しかし、3 日間インターネットを精査し、あらゆる種類のテスト コードを実行した後、カスタム PropertyDescriptor を INotifyPropertyChanged イベントにも参加させる方法を理解するのに苦労しています。

例として、MCO は次のようになります。

そして、PropertyDescriptor のゲッターとセッターを介して Property1 にマップされる TypeDescriptor.AddProvider() を介してカスタム PropertyDescriptor "VirtualProperty2" を追加します。

バインドすると、DatagridViewProperty1 と VirtualProperty2 が 2 つの列として表示され、セルの値は期待どおりです。

次に、Property1 の値を次のいずれかで変更すると、

  1. データグリッドビューでプロパティ 1 セルを直接更新する
  2. datagridview の VirtualProperty2 セルを直接更新する
  3. コードを介して MCO.Property1 インスタンスを更新するフォームのボタンをクリックする

Property1 セルは期待どおりに更新されます。ただし、VirtualProperty2 は条件 2 によってのみ変更されます。

手順 1 または 3 の後に VirtualProperty2 のセルをクリックすると、更新されます。(セルをクリックすると、PropertyDescriptor でゲッターを呼び出すイベントが発生する必要があるため)

VirtualProperty1 が Property1 にマッピングされているため、MCO の Propery1 が PropertyChanged イベントを発生させたときに VirtualProperty1 の PropertyDescriptor が PropertyChanged イベントに応答する必要があります。

アイデア?

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

c# - DataGridAutoGeneratingColumnEventArgs.PropertyDescriptor はどのタイプですか?

私はWPFが初めてで、dataGridを少しカスタマイズして、データを読みやすい方法で表示しようとしています。この記事を見たことがありますが、最後に、キーワードと小さなチェック コードPropertyDescriptorを使用して、プロパティを 2 つのクラスにキャストしています。とクラスasはどう違いますか?なぜ両方が使用されるのですか?PropertyDescriptorPropertyInfo

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

c# - PropertyDescriptor.Converter の TypeConverter

Data binding dynamic dataで説明されている問題を考えてみましょう。Marc Gravell Marc's answerによって与えられた優れたソリューションを見てみましょう。Marc は、TypeConverter を使用せずに解決策を提供しました。そして今、私の問題を提出する時が来ました。TypeConverter組み合わせたコードの例と、これとPropertyDescriptor.Converter同様の問題を探しています。Marc は文字列に対する簡単な解決策を提供していますが、DateTime や int などの他の型を追加するとどうなるでしょうか。

PS私は、インデクサーとUI上のオブジェクトをラップするために、、、の独自の実装を使用していますIBindingList...しかし、プログラミングの世界で10年間不在だった後、C#と同様に、私は新人です[必要ですが、また、大きな喜び]。IListITypedListICustomTypeDescriptorTypeConverter

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

c# - PropertyGrid のルート行で展開可能なオブジェクトを編集するには?

PropertyGrid に関するヘルプが必要です。

PropertyGrid コントロールに表示する CustomClass のリストがあります。プロパティ グリッドで CustomClass インスタンスのプロパティを変更したいと考えています。(条件は、編集者がいないことです)。関連記事にあるように、ExpandableObjectConverters と PropertyDescriptors を使用すると、List 内のすべての CustomClass インスタンスをプロパティに展開して変更できます。しかし、私の目標は、展開せずにその行の CustomClass プロパティを変更することです。(VS コントロール プロパティ ビューの SomeControl Size プロパティの動作例)

ルート行の展開可能なオブジェクトを編集するにはどうすればよいですか?

記事の画像

この図の詳細な質問: 最大ヘッドルームを「セールス、マネージャー」から「セールス、ディレクター」に拡張せずに変更する方法。(この行が読み取り専用フィールドであるという私の問題)

関連記事: http://www.codeproject.com/Articles/4448/Customized-display-of-collection-data-in-a-Propert?msg=4745311#xx4745311xx 私もそこに質問を投稿しました (まだ回答はありません) )。

複雑すぎる場合は、基本的なコード サンプルを生成できます。

0 投票する
0 に答える
1446 参照

java - PropertyDescriptor getWriteMethod タイプ

Stringから受け取った値でオブジェクトのセッターメソッドを呼び出したいですresultSet

これは、オブジェクトが次のようになっている場合に完全に機能します。

ここで、このフィールド値を整数にしたい:

String上記のコードは、 as 属性を持つメソッドを見つけることができないため、例外をスローします。コードを次のように変更すると、これを修正できます。

これを動的に行うにはどうすればよいですか? Image このセッター アプローチを使用して多くのフィールドを割り当てたいのですが、オブジェクト内のフィールドの型がわかりません。オブジェクトで宣言されている適切なセッター メソッドを呼び出したいだけです。私の考えは、オブジェクトのフィールドのタイプをチェックして、resultSet で適切な get... メソッドを呼び出すことです。しかし、これを行う方法がわかりません。

何か案は?

0 投票する
4 に答える
1426 参照

java - Java 8 および Bean Info Introspector のインターフェースのデフォルト メソッド

Interface と BeanInfo Introspector のデフォルト メソッドに少し問題があります。この例では、インターフェイスがあります: インターフェイス

ClassA と ClassB の 2 つのクラス:

main メソッドで、app は BeanInfo から PropertyDescriptors を出力します。

結果は次のとおりです。

デフォルトのメソッド「letter」がClassAのプロパティとして表示されないのはなぜですか? それはバグですか、それとも機能ですか?

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

c# - 現在のクラスと基本クラスのすべてのプロパティを取得します

いくつかの内部プロパティを持つ 2 つのクラス (「BaseItem」と「ChildItem」としましょう) があります。BaseClass で、このプロパティをすべて読み取るメソッドを定義しました

また

「ChildItem」のインスタンスでこのメソッドを呼び出すと、「ChildItem」で定義されているプロパティのみを取得します。「BaseItem」のプロパティも取得するにはどうすればよいですか?

よろしく

デイブ

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

jenkins - Jenkins Jelly f:property propertyDescriptor 属性

Jenkins property.jelly propertyDescriptor フィールドの使用に問題があります。いくつかの調査を行った後、propertyDescriptor 属性の実装がわかりにくいことがわかりました。

コードは次のとおりです。

property.jelly ファイル

次の行を参照してください。

?: は Jelly の三項演算子ですか? ただし、基本的には、 ${attrs.propertyDescriptor} が設定されている場合は「記述子」を何も設定せず、それ以外の場合は「記述子」を app.getDescriptorOrDie( ... ) に設定します。

そうではありませんか:

間に挿入したコードに注意してください。と :。

これは property.jelly のバグですか?