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
.