問題タブ [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.
c# - C# - プロパティが変更されたかどうかを判断する方法
public プロパティ (getter と setter を持つ) が変更されたかどうかを知る必要があります。プロパティは単純なクラスです (ユーザー コントロール/コンポーネントなどはありません)。
プロパティが変更されたときに通知するある種のイベントにサブスクライブするエレガントな方法はありますか?
Microsoft が Binding オブジェクトで (リフレクターを使用して) 何を行っているかを確認しようとしたため、PropertyDescriptor.AddValueChanged メソッドを調べてみましたが、うまくいきませんでした。コンポーネント/ユーザーコントロールでのみ機能する可能性があります...
助言がありますか?
ありがとう、
アディ・バルダ
c# - ICustomTypeDescriptor.GetPropertiesによって返されるプロパティを読み取り専用に動的に変更します
ICustomTypeDescriptorを実装し、PropertyGridでユーザーが表示および編集するクラスがあります。私のクラスには、ユーザーが後で変更を保存できるかどうかを決定するIsReadOnlyプロパティもあります。ユーザーが保存できない場合は、ユーザーに変更を許可したくありません。したがって、IsReadOnlyがtrueの場合、プロパティグリッドで読み取り専用になるように編集できるプロパティをオーバーライドしたいと思います。
ICustomTypeDescriptorのGetPropertiesメソッドを使用して、各PropertyDescriptorにReadOnlyAttributeを追加しようとしています。しかし、それは機能していないようです。これが私のコードです。
これはTypeDescriptor.AddAttributes()を使用する正しい方法でもありますか?呼び出し後にデバッグしている間、AddAttributes()プロップには同じ数の属性があり、いずれもReadOnlyAttributeではありません。
controls - Control クラスは、ForeColor、BackColor、および Font のデフォルト値をどのように提供しますか?
Component-model は、 PropertyDescriptor の ShouldSerializeValue メソッドを使用して、プロパティにデフォルト値があるかどうかを示していることを知っています。
基本の windows-formsクラスには、 ForeColor 、 BackColor 、 FontControlなどのいくつかのプロパティがあり、デフォルトで親と同じ値になりますが、これらのデフォルト値を提供するものは見つかりませんでした。Control クラスは ICustomTypeDescriptor を実装しておらず、TypeDescriptionProviderAttribute も持っていません。TypeDescriptorPropertyDescriptor
Control クラスは、これらのプロパティをシリアル化する必要があるかどうかをどのように示しますか? これらのプロパティの PropertyDescriptors はどこで提供されますか??
ありがとう!!!
c# - TypeDescriptor/PropertyDescriptor/etc を理解する
コードを参照してください:
コードについていくつか質問があります。
(1) SerializableAttributeDataItem の Type に を追加しましたが、この「変更」は何に適用されますか? この属性を で取得できませんtypeof(DataItem).GetCustomAttributes(true)。「必須の DataItem」に変更が適用されていないようで、一時的に TypeDescriptionProvider に格納されていますか?
(2) インスタンスanotherはプロバイダー (属性を追加した場所) によって作成されます。この変数は、SerializableAttributed DataItem のコンストラクターによって作成されたものと同じだと思いますか? で属性を取得できなくてもanother.GetType().GetCustomAttributes。
(3) 変更がプロバイダーに一時的に保存されていると思われるもう 1 つの理由は、名前Strとタイプstringでプロパティを作成しようとしたことです。これは、実際には既にDataItem. コードは を出力しますhello。メソッドのコメントを外すSetValueと、出力はnew one. 誤解はありますか?
.net - TypeDescriptor.GetPropertiesはクラスから何も返しません
2つの単純なプロパティnumとnameを含むクラスTestObjectを定義しました。TestObjectクラスのオブジェクトにTypeDescriptor.GetProperties()を使用して、定義されたプロパティを取得しようとしています。しかし、それは何も返しません。
ここで簡単なものが欠けていますか?あなたの助けに感謝。
.net - デフォルトの属性リストは、c# .net のクラス定義に含まれる必要があります
私は従業員クラスを持っています:
カスタム属性を次のように作成しましCustomeAttributeた
私は as で as 属性を使用してCustomAttributeいますEmployee
プロパティ定義ごとに属性コレクションが存在する必要があることを検証したいと思います。Age「従業員」に新しいプロパティを追加すると
属性が欠落しているため、コンパイル時エラーが発生するはずです。そのクラスの各プロパティと同じアセンブリからのクラスに属性値を確実に書き込むのはどれですか??
属性値のないプロパティのコンパイル時エラーが発生するはずです。
c# - 現在のプロパティの PropertyDescriptor を取得するには?
PropertyDescriptor現在のプロパティのを取得するにはどうすればよいですか? 例えば:
android - Android エラー「仮想メソッド java/beans/PropertyDescriptor を解決できません」の回避策はありますか?
Android アプリケーション内でサードパーティの jar ファイルを使用しようとしています。jar ファイル内のいくつかのクラスを問題なく使用できました。ただし、クラスの 1 つは、dalvik vm でサポートされていないように見えるいくつかの Java クラスを参照しています。LogCat で表示されるエラーの一部を次に示します。
イントロスペクションとリフレクションに関連する Java クラスは、dalvik ではサポートされていないようです。2つのことを知りたいです。近い将来、dalvik でこれをサポートする計画はありますか? 次に、この問題を回避するための回避策を提案する人はいますか?
java - Java Bean のパラメータ化されたプロパティ名と型のリストを使用する方法
私は豆を持っていると言う
.... }
次のコードを使用して、プロパティを処理またはダンプしています
「スコア」と「メッセージ」のパラメーター化された型を取得できるようにしたい。コードを台無しにすると、「 descriptor.getPropertyType().getName()」 の値は、メッセージとスコアの両方で「java.util.List」になります。
「メッセージ」のプロパティ記述子が を参照してList<String>おり、「スコア」のプロパティ記述子が を参照しているかどうかを確認するにはどうすればよいList<Integer>ですか?
c# - 静的プロパティと動的プロパティ値エントリを含むディクショナリを持つクラスへのWPFデータグリッドデータバインド
更新しました
私はもう少し読んで、ソリューションを再実装することにしたので、この投稿を更新しています。
元の問題:静的プロパティを持つクラスと、(ディクショナリを介した)プロパティの動的コレクションである1つのプロパティがあります。クラスをwpfdatagridにデータバインドしたいのですが、各静的プロパティは列であり、各ディクショナリエントリはグリッド内の列である必要があります。
さらに調査を行った後、プロパティと値のディクショナリを含むPropertyBagクラスを実装することにしました。現在、ほとんどすべてが機能しています。グリッドがすべて正しい列で表示されており、静的プロパティ値が正しく適用されています。
ただし、現在、ディクショナリからグリッドに適用する値を取得できず、ここからどこに進むべきかわかりません。
より詳しい情報:
私のデータベースには、プレート、カテゴリ、およびカテゴリプレート関連付けテーブルの3つのテーブルがあります。各プレートには、0から多くのカテゴリを含めることができます。今のところ、各プレートにすべてのカテゴリを入力し、文字列を空に設定しています。次に、(プレートとカテゴリの間で)関連付けが返されるときに、特定のカテゴリ名に実際の値を設定しています。これはすべて、グリッドが作成される前に発生します。
プロパティバッグ:
改訂されたプレートクラス
改訂されたCustomTypeDescriptor:
改訂されたPropertyDescriptor
シンプルなViewModel