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

本文关键字:两个 属性 绑定 在一起 | 更新日期: 2023-09-27 18:10:22

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

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

另一个类是这样的:

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

I want to Motion。位置更新时,汽车。位置改变。直到Car。位置不能更新

    car1.Location=new Point3D();

之后,这两个属性分开了。我怎么做才能保证运动。Location值与Car相同。位置值。

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

您真正能做的就是在对象级别声明一个事件,以便在属性更改时得到通知。但是你必须为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的setter。Location更新运动实例的位置值(尽管从代码中不清楚该实例来自何处)