visual usuarios usuario studio manejo example ejemplo crear control c# wpf binding nested dependency-properties

studio - manejo de usuarios c#



Cómo exponer múltiples DependencyProperties(con el mismo nombre) de controles anidados en un UserControl? (0)

Traté de resolver casi el mismo problema: " ¿Cómo exponer una DependencyProperty de un control anidado en un UserControl? "

La diferencia es que tengo diferentes (2 o más) Controls anidados con del mismo type . Mi objetivo es hacer que las DependencyProperties anidadas sean vinculables. El principal problema al que me enfrento es que Binding no utiliza el Getter y Setter de la CLR-Property sino la String de la DependencyProperty registrada. Con 2 (o más) Controls anidados estoy enfrentando un conflicto de nombres.

Para ilustrar mi problema aquí, el código del UserControl externo:

public partial class OuterControl : UserControl { public OuterControl() { InitializeComponent(); } public Visibility PropOfInnerControl { get { return (Visibility)GetValue(PropOfInnerControlProperty); } set { SetValue(PropOfInnerControlProperty, value); } } // Using a DependencyProperty as the backing store for UserControl2Visibility. This enables animation, styling, binding, etc... public static readonly DependencyProperty PropOfInnerControlProperty = InnerControl.PropOfInnerControlProperty.AddOwner(typeof(OuterControl), new FrameworkPropertyMetadata(MyVisibilityPropertyChanged)); private static void MyVisibilityPropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { var OuterControl = obj as OuterControl; OuterControl.InnerControl1.PropOfInnerControl = (Visibility)e.NewValue; } }

Si no está claro: en mi ejemplo, DependencyProperty de InnerControl1 se llama PropOfInnerControlProperty y se registra bajo la String "PropOfInnerControl" .

En mi ejemplo, el enlace con InnerControl1 funciona bien. Pero no sé cómo resolver el mismo problema con el InnerControl2 .