我有一个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()
{
}
}
以及我是 有兴趣收到集合以外的通知,我的意思是在我的UserControl1中。这样,我已经设置了财产,它的工作,但只有一次...你是什么意思我改变我的收藏和地点? – rsleiman
@rsleiman - 您说过“将一些物品添加到集合中”,这意味着您正在改变集合(即添加物品,移除物品,移动物品或替换物品)。如果您想知道集合何时更改,您必须使用CollectionChanged。当财产发生变化时,情况就不同了。 – CodeNaked
哦,我看到了,但是后来我更改了实例化我的自定义列表以支持CollectionChanged事件的代码。它似乎工作正常。谢谢。 – rsleiman