集合依赖属性不起作用

时间:2011-08-02 20:47:06

标签: c# wpf

我有一个WPF用户控件,表示一个包含一些属性的圆形量规。当我在我的应用程序中直接使用它时,一切正常,但当我在Expression Blend中加载它以测试其属性并模拟预期的动画时,它可以使用集合依赖属性。问题是当我使用Expression Blend将一些项添加到集合属性时 不调用“SetValue”!我做错了什么?

    public static readonly DependencyProperty RangesProperty =
        DependencyProperty.Register("Ranges ", typeof(CircularRangeInfoList), typeof(UserControl1), new FrameworkPropertyMetadata(new CircularRangeInfoList()));

    [Category("Test Collection")]
    public CircularRangeInfoList Ranges
    {
        get { return (CircularRangeInfoList)GetValue(RangesProperty); }
        set { SetValue(RangesProperty, value); }
    }
public class CircularRangeInfoList : ObservableCollection<CircularRangeInfo>
{
    public CircularRangeInfoList()
    {
    }
}

2 个答案:

答案 0 :(得分:1)

那是因为你没有设置属性,你正在改变集合(已经设置了属性)。如果您需要监视集合中的更改,那么您应该为CollectionChanged事件添加处理程序。

有关详细信息,请参阅此question

答案 1 :(得分:0)

注册依赖项属性specify a static property changed callback时。当您的依赖项属性更改时,将调用此方法。在此回调委托中,您应该将事件处理程序附加到自定义集合的CollectionChanged事件。