我有一个名为Grid
的类,该类由其他两个类:Circle
和Line
组成。这是这些类的代码:
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
}
}