2010-09-25 68 views
0

項目的屬性更改我有下面的類:WPF綁定:反應時在綁定集合

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屬性綁定到其他一些集合。

我想要實現的是,只要屬性在集合中的Sprite發生更改,或者每當我添加或刪除集合中的項目時,畫布都會重繪本身。

我知道我可以爲每個精靈的Property Changed事件處理函數添加一個函數,但是我想知道是否有更好的方法來執行此操作。

在此先感謝。

回答

0

只要將ItemsControl的Panel設置爲Canvas,可能會更容易。

+0

我找到了解決方法。自定義畫布有一組圖像,其屬性綁定到精靈。然後,這些圖像將作爲畫布的子項添加。 – Mougli 2010-10-19 09:54:46