我试图解决几乎相同的问题:“How to Expose a DependencyProperty of a Control nested in a UserControl?”
不同之处在于我有不同的(2个或更多)嵌套Controls
具有相同的type
。我的目标是使嵌套的DependencyProperties
绑定。我面临的主要问题是,Binding
不使用Getter
的{{1}}和Setter
,而是使用CLR-Property
注册表String
}}。使用2(或更多)嵌套DependencyProperty
我面临命名冲突。
在此处说明我的问题外部Controls
的代码:
UserControl
如果不清楚:在我的示例中,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;
}
}
的{{1}}被称为DependencyProperty
,并在InnerControl1
下注册。
在我的示例中,使用PropOfInnerControlProperty
绑定工作正常。但我不知道如何使用String "PropOfInnerControl"
来解决同样的问题。