我有一个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()
{
}
}
答案 0 :(得分:1)
那是因为你没有设置属性,你正在改变集合(已经设置了属性)。如果您需要监视集合中的更改,那么您应该为CollectionChanged事件添加处理程序。
有关详细信息,请参阅此question。
答案 1 :(得分:0)
注册依赖项属性specify a static property changed callback时。当您的依赖项属性更改时,将调用此方法。在此回调委托中,您应该将事件处理程序附加到自定义集合的CollectionChanged事件。