0

コードが外部ソースからインスタンスを受け取り、インスタンスの作成方法を制御できなかったとします。インスタンスはを実装していませんINotifyPropertyChanged。次のように、渡すことができるアダプタはありますか?

var adapter = new ChangeNotifierAdapter( instance );

アダプタがINotifyPropertyChangedを実装し、その後、 ?PropertyChangedのすべてのプロパティ変更に対してイベントを発生させるようにします。instance

4

1 に答える 1

0

インスタンスへのすべての変更がラッパーを介して行われることを保証できる場合は、プロキシを使用できます-動的プロキシまたは設計時に生成されたプロキシ(nb:インターフェイスではなく具象クラスを公開する必要がある場合)動的プロキシである必要があります)。

それが当てはまらない場合(または当てはまる場合でも、あるプロパティへの変更が別のプロパティの値に影響を与える場合)、これを実現する唯一の方法はポーリングを使用することです。ラッパーは、オブジェクトのすべてのプロパティを定期的にポーリングし、変更されたプロパティを判別して、それに応じてイベントを発生させる必要があります。これは厄介で、モバイルデバイスでは深刻なバッテリーの消耗になる可能性があります。

もちろん両方とも吸う。それを実装するオブジェクトへのマッピングは、一般的に、より良い解決策です。

于 2013-02-21T02:40:35.293 に答える