Я смотрю на некоторый код из Чарльза Петцольда , он использует следующий синтаксис для PropertyChangedCallback
public static readonly DependencyProperty CenterProperty =
EllipseGeometry.CenterProperty.AddOwner(
typeof(CenteredEllipse),
new FrameworkPropertyMetadata(new Point(0, 0),
EllipsePropertyChanged));
Это не сработает, если вы сделаете это таким образом, выНужно поставить свойство измененного обратного вызова в новом new PropertyChangedCallback(EllipsePropertyChanged)
.Он также редактирует переменные напрямую:
void EllipsePropertyChanged(DependencyPropertyChangedEventArgs args)
{
elipGeo.Center = Center;
elipGeo.RadiusX = RadiusX;
elipGeo.RadiusY = RadiusY;
InvalidateMeasure();
}
Должно ли это быть примерно так:
static void EllipsePropertyChnaged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
EllipseGoemetry ellipseGeo = (EllipseGoemetry )obj;
args.newValue ...
}
Кто-нибудь знает, что происходит?