Siéntete en la libertad de divulgar nuestra web y códigos en tus redes sociales, necesitamos tu ayuda para hacer crecer nuestra comunidad.
Solución:
Lo que sucede es que la propiedad de dependencia se registra varias veces con el mismo nombre y propietario. Las propiedades de dependencia están destinadas a tener un solo propietario y deben instanciarse estáticamente. Si no los instancia estáticamente, se intentará registrarlos para cada instancia del control.
Haz tu declaración de DependencyProperty static. Cambiarlo de:
public DependencyProperty SomeStringValueProperty =
DependencyProperty.Register("SomeStringValue",
typeof(string),
typeof(ExampleUserControl));
Para:
public static DependencyProperty SomeStringValueProperty =
DependencyProperty.Register("SomeStringValue",
typeof(string),
typeof(ExampleUserControl));
Mi mensaje de error de este tipo se produjo al registrar una propiedad de dependencia con una clase base
es decir, esto
public static readonly DependencyProperty WorkerStateProperty =
DependencyProperty.Register("WorkerState", typeof(State), typeof(Control),
new FrameworkPropertyMetadata(State.Stopped, new PropertyChangedCallback(OnWorkerStateChanged)));
en lugar de esto
public static readonly DependencyProperty WorkerStateProperty =
DependencyProperty.Register("WorkerState", typeof(State), typeof(WorkerControl),
new FrameworkPropertyMetadata(State.Stopped, new PropertyChangedCallback(OnWorkerStateChanged)));
donde mi clase WorkerControl derivó de Control
Valoraciones y reseñas
Si te ha sido de utilidad este artículo, sería de mucha ayuda si lo compartes con más juniors de esta forma nos ayudas a difundir esta información.