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 .