集合依赖属性不起作用

本文关键字:不起作用 属性 依赖 集合 | 更新日期: 2023-09-27 18:04:32

我有一个WPF用户控件,它代表一个带有一些属性的圆规。当我直接在我的应用程序中使用它时,一切都工作得很好,但是当我在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()
    {
    }
}

集合依赖属性不起作用

这是因为您不是在设置属性,而是在更改集合(属性已经设置为该集合)。如果需要监视集合中的更改,则应该为CollectionChanged事件添加处理程序。

当你注册你的依赖属性时,指定一个静态属性更改回调。这将在您的依赖项属性更改时调用。在此回调委托中,您应该将事件处理程序附加到自定义集合的CollectionChanged事件。