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



我有一个名为Grid的类,该类由其他两个类:CircleLine组成。这是这些类的代码:

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

我希望Line的几何形状保持连接到Circle的几何形状。这意味着,当我移动Circle时,我希望通知Line并更新其几何形状以匹配Circle的新位置。我可以创建一个新的Grid,并具有Circle和LINE的更新几何形状,但我不想创建一个新的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
    }
}

相关内容

  • 没有找到相关文章

最新更新