Saltar al contenido

Consiguiendo ” ya estaba registrado por “”error en WPF

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *