WPF绑定:在绑定集合中项的属性更改时作出反应

时间:2010-09-25 21:40:58

标签: c# wpf data-binding

我有以下课程:

public class MyCustomCanvas : Canvas
{
    public static readonly DependencyProperty SpritesProperty = DependencyProperty.Register(
       "Sprites",
       typeof(ObservableCollection<Sprite>),
       typeof (MyCustomCanvas),
       new FrameworkPropertyMetadata(
           null,
           FrameworkPropertyMetadataOptions.AffectsRender|FrameworkPropertyMetadataOptions.AffectsParentMeasure));

    public ObservableCollection<Sprite> Sprites
 {
     get { return (ObservableCollection<Sprite>) GetValue(SpritesProperty); }
        set { SetValue(SpritesProperty, value); }
 }

Sprite类实现INotifyPropertyChanged。 Sprites属性绑定到其他一些集合。

我想要实现的是,只要属性在集合中的精灵中发生变化,或者每当我在集合中添加或删除项目时,画布都会自行重绘。

我知道我可以为每个精灵的Property Changed事件处理程序添加一个函数,但我想知道是否有更好的方法来执行此操作。

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用ItemsControl并将Panel设置为Canvas可能更容易。