-1

日食の構造であるプロパティがあります。特定のフィールドが構造内で変更されたことを知るためにリスナーを呼び出すにはどうすればよいですか。同様に、構造のシーケンスであるプロパティがある場合、どの構造が変更され、構造内のどのフィールドが変更されたかをどのように知ることができますか。

LinuxでC++を使用しています。

構造体プロパティの名前は MyStruct です。メンバー フィールドは MyField1 と MyField2 です。私は使用しています

setPropertyChangeListener("MyStruct", this, &MyComponent_i::myStrutChanged);

setPropertyChangeListener("MyStruct.MyField1", this, &MyComponent_i::myStructField1Changed);

setPropertyChangeListener("MyStruct.MyField2", this, &MyComponent_i::myStructField2Changed);

フィールドが変更されると、setPropertyChangeListener("MyStruct", this, &MyComponent_i::myStrutChanged) が呼び出されます。どのフィールドが変更されたかを知る必要があります。

また、MySeq という構造体のシーケンスであるプロパティもあります。この構造体には、SeqField1 と SeqField2 という名前の 2 つのメンバー フィールドがあります。私は使用しています

setPropertyChangeListener("MySeq", this, &MyComponent_i::mySeqChanged);

setPropertyChangeListener("MySeq[1]", this, &MyComponent_i::mySeqChanged_1);

setPropertyChangeListener("MySeq[1].SeqField1", this, &MyComponent_i::mySeqChanged_1_field1);

setPropertyChangeListener("MySeq[1].SeqField2", this, &MyComponent_i::mySeqChanged_1_field2);

いずれかの構造のフィールドが変更された場合、setPropertyChangeListener(""MySeq", this, &MyComponent_i::mySeqChanged) が呼び出されます。どの構造が変更され、どのフィールドが構造内で変更されたかを知る必要があります。

4

1 に答える 1

0

入ってくる (変更された) 構造体と比較できる構造体型のプライベート メンバー変数を作成することをお勧めします。次に、フィールドをステップ実行して、変更されたフィールドを特定できます。

于 2014-10-30T13:12:35.983 に答える