无法绑定到Point []类型的依赖项属性

时间:2015-12-05 20:44:16

标签: c# binding dependency-properties

我在用户控件后面的代码中定义了依赖项属性,如下所示:

public partial class StockControl : UserControl
{
    public static readonly DependencyProperty DataProperty;

    static StockControl()
    {
        FrameworkPropertyMetadata md = new FrameworkPropertyMetadata(DataPropertyChanged);
        DataProperty = DependencyProperty.Register("Data", typeof(Point[]), typeof(StockControl), md);
    }    

    public StockControl()
    {
        InitializeComponent();
    }

    private static void DataPropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
    {

    }

    public Point[] Data
    {
        get { return (Point[])GetValue(DataProperty); }
        set { SetValue(DataProperty, value); }
    }
}

我正在尝试将整个数组点绑定到我的XAML中的这个依赖项属性。但是,数据属性未显示在intellisense中。如果我将数据类型从Point []切换到Point类型的列表集合,那么它可以正常工作。

我不想使用收藏品。有没有办法让我的原始Point []类型工作?我已经读过,属性不应该返回数组,因为它们是可变的,并且可能被篡改。这是为什么它不起作用?

1 个答案:

答案 0 :(得分:1)

我已经尝试过你的代码,它为我构建了一个点数dp很好。

<Window.Resources>
    <x:Array Type="Point" x:Key="myPoints">
         <Point X="50" Y="50"></Point>
    </x:Array>
 </Window.Resources>


<local:StockControl Data="{StaticResource myPoints}">

</local:StockControl>