如何将两个类的两个属性绑定在一起

时间:2014-06-26 20:18:37

标签: c# properties bind

如何定义镜像属性以使具有相等值的类分离? 我有一个这样的课:

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值相同。

2 个答案:

答案 0 :(得分:1)

您真正要做的就是在对象级别声明一个事件,以便在属性更改时收到通知。但是你必须为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() );
       }
     }
   }
 }

答案 1 :(得分:0)

类没有值。类的实例具有值。你不是在这里创建Car或Motion的实例,所以没有什么可以绑定的。如果实例,你可以让car.location的setter更新动作实例的位置值(从代码中不清楚该实例的来源)