Attached Property Changed Event?
attached-properties, c#, wpf
Solution
Why don't you use a binding ? That's precisely what they're designed for...
If, for some reason, you can't use a binding, you can add a handler to be notified when the value of the property changes :
var topDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty, typeof(Rectangle));
var leftDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.LeftProperty, typeof(Rectangle));
topDescriptor.AddValueChanged(rectangle, rectangle_PositionChanged);
leftDescriptor.AddValueChanged(rectangle, rectangle_PositionChanged);
...
private void rectangle_PositionChanged(object sender, EventArgs e)
{
...
}
Problem
ist there a way to get a change notification if an attached property changed? A simple example is a `Canvas` with a `Rectangle` in it. The position of the `Rectange` is set by using the DepenendyProperties `Canvas.Top` and `Canvas.Left`. I'm using an Adorner to move the Rectangle around by changing the `Canvas.Top` and `Canvas.Left`. ``` <Canvas Width="500" Height="500" > <Rectangle Width="40" Height="40" Canvas.Left="10" Canvas.Top="20" /> </Canvas> ``` The next step is to create an Arrow between two `Rectangles`. In order to keep track of the moving `Rectangles` the Arrow must get a change notification whenever the position of a `Rectangle`changes. This would be easy if I could just get a changed notification when the Attached Property `Canvas.Top`changes. Thanks for any help, Michael