我想要一个DependencyPropery,它是一个引用的UIElements数组。在WPF中,我们有x:Array标记扩展以及x:Reference可用但它无法使其正常工作。
有关于此的任何想法吗?
克里斯
答案 0 :(得分:0)
执行此操作的标准方法是在WPF中将UIElementCollection类分配给您的依赖项属性,如下所示:
public UIElementCollection ElementCollection
{
get { return (UIElementCollection)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}
// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.Register("MyProperty", typeof(UIElementCollection), typeof(MyClass), new UIPropertyMetadata(null));
在类的构造函数中,您应该将依赖项属性设置为new UIElementCollection
。
答案 1 :(得分:-1)
我自己找到了答案。
MyPropertyProperty = DependencyProperty.Register("MyProperty", typeof(UIElement[]), typeof(MyClass), new FrameworkPropertyMetadata(null, MyPropertyChanged));
相应的XAML看起来像:
<cc:MyClass.MyProperty>
<x:Array Type="UIElement">
<x:Reference>NameOfTheReferencedUIElement</x:Reference>
</x:Array>
</cc:MyClass.MyProperty>
这样,依赖项属性会自动填充UIElements形式的引用UI对象数组。
克里斯