c# wpf mvvm user-controls dependency-properties

c# - ¿Debería ViewModel heredar DependencyObject en WPF?



mvvm user-controls (1)

Si ha creado un control personalizado con propiedades que desea que sean vinculables (por ejemplo, el siguiente código), no puede usar INotifyPropertyChanged y debe usar DependencyObject .

<MyUserControl MyDependencyProperty="{Binding PropertyPath}" />

Pero al usar DependencyObjects debes tener en cuenta que:

  1. DependencyObjects no están marcados como serializables.
  2. La clase DependencyObject anula y sella los métodos Equals() y GetHashCode() .
  3. Un DependencyObject tiene afinidad por el hilo: solo se puede acceder a él en el hilo en el que se creó.

    • Para ver un buen ejemplo de MVVM que analiza la implementación de INPC y DP en View-Model, consulte este artículo .

    • Para más información sobre el debate INPC vs DP, lee este blog .

Intenté crear un UserControl simple en WPF usando MVVM. Ahora necesito crear una propiedad de dependencia para UserControl, así que traté de crear la propiedad de dependencia en UserControlViewModel (no quiero estar en codebehind).

Para crear una propiedad de dependencia en UserControlViewModel, necesito heredar de DependencyObject. ¿Es una buena práctica heredar DependencyObject en UserControlViewModel? Es decir, ¿es una buena forma de seguir a MVVM para diseñar un UserControl?