我有一个名为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的?
答案 0 :(得分:1)
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
}
}