在 C# 中将 属性 绑定到另一个 属性

Bind a property to another property in C#

我有一个名为 Grid 的 Class,它由另外两个 类 CircleLine.

组成
public class Grid
{
    public Circle Circle {get; set;}
    public Line Line {get; set;}
}

我希望 Line 的几何图形与 Circle 的几何图形保持连接。这意味着当我拖动或移动 Circle 时。我希望以某种方式通知 Line 并根据 Circle.

的新位置更新其几何形状

当然,我总是可以使用 CircleLine 的更新几何创建一个新的 Grid,但我不想创建一个新的 Grid .我只是想以某种方式将 Line 的端点绑定到例如 Circle 的中心。

C# 中的哪些技术允许我执行此操作?代表? inotifypropertychanged?

public class Circle : INotifyPropertyChanged
{
    private int radius;       
    public int Radius 
    {
        get { return radius; }
        set 
        {
            radius = value;
            RaisePropertyChanged("Radius");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(string propertyName)
    {
        var propChange = PropertyChanged;
        if (propChange == null) return;
        propChange(this, new PropertyChangedEventArgs(propertyName));
    }
}

然后在Grid.cs

public class Grid
{
    private Circle circle;
    public Circle Circle 
    {
       get { return circle; }
       set 
       {
           circle = value;
           if (circle != null) 
              circle.PropertyChanged += OnPropertyChanged;
       }
    }

    private void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == "Radius")
            // Do something to Line
    }
}