更新:質問の言い回しが間違っていました。内側と外側の緯度/経度メンバーの両方が相互に更新する必要があるため、再帰が発生します。外側のメンバーはデータベース コンテキストによって更新され、内側のメンバーは UI によって更新されます。そのため、データベースからの変更はすべて UI に伝達する必要があり、その逆も同様です。Coordinates クラスは UI から分離できず、外部メンバーはデータベースから分離できません。
再帰を防ぐためのフラグがこれを回避する最も簡単な方法だと思います。
次のクラスがあります。
class Coordinates
{
public double Latitude { get; set; }
public double Longitude { get; set; }
}
class Location
{
public string Name { get; set; }
public Coordinates Coordinates { get; set; }
public double CoordinateLatitude
{
get { return (this.Coordinates.Latitude); }
set { /* This member needs to get updated every time Location.Coordinates.Latitude gets updated. */ }
}
public double CoordinateLongitude
{
get { return (this.Coordinates.Latitude); }
set { /* This member needs to get updated every time Location.Coordinates.Latitude gets updated. */ }
}
}
メンバーCoordinateLatitude
とCoordinateLongitude
Coordinates クラスへのマップ。私が達成したいのはその逆でもあります。したがって、Coordinates
クラスが更新されると、クラスのメンバーLocation
も更新される必要があります。現時点でコードを変更する自由がないため、コードがそのように構成されている理由を聞かないでください。
Coordinates クラスのメンバーを設定するコードがプロジェクト全体にたくさんありlocation.Coordinates.Latitude = 10.0D;
ますCoordinates
:イベントに。
私の質問は、Location.Coordinates メンバーに Location.CoordinateLatitude 値を更新させるにはどうすればよいですか? IDisposable
(イベントの場合のように) クリーンアップを必要とせずに、そのようなコールバックを設定する標準的な方法はありますか?