簡體   English   中英

如何將兩個類的兩個屬性綁定在一起

[英]How to bind two properties of two classes together

如何定義一個鏡像屬性來分隔具有相等值的類? 我有這樣的課:

public abstract class Car
{
    public Point3D Location { get; set; }
}

還有另一個這樣的類:

class Motion
{
    public Point3D Location {get; set;}
    public Motion(Point3D location)
    {
        Location  = location;
    }
}

我想在Car.Location更改時更新Motion.Location。 直到完成Car.Location的更新為止。

    car1.Location=new Point3D();

之后,這兩個屬性分離。 因此,我該怎么做才能保證Motion.Location值與Car.Location值相同。

您真正能做的就是在對象級別聲明一個事件,以便在屬性更改時得到通知。 但是您必須為Location添加一個后端屬性,以便您可以觸發事件。

public abstract class Car
{
   private Point3D _loc;
   public event System.EventHandler LocationChanged;
   public Point3D Location 
   { 
      get{
          return _loc;
      }
     set; {
       _loc = value;
       if ( LocationChanged != null )
       {
          LocationChanged( this, new EventArgs() );
       }
     }
   }
 }

類沒有值。 類的實例具有值。 您不是在這里創建Car或Motion的實例,因此實際上沒有任何綁定。 如果實例,則可以讓car.location的設置者更新運動實例的位置值(因此,從代碼中還不清楚該實例的來源)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM