2010-06-28 46 views
0

我還是比較新的silverlight,所以希望這是一個基本的問題:我有一個折線,其'點'(類型:PointsCollection)屬性綁定到我的視圖模型類中的PointsCollection公共成員Pts。當我從ViewModel.Pts添加/刪除點時,折線正確重繪正確,沒有任何問題。但是,如果我將Pts更改爲另一個引用,在我的視圖模型類中完全不同的PointsCollection對象,則折線不會自動重繪。 Polyline.Points綁定仍指向ViewModel.Pts,但現在ViewModel.Pts引用ViewModel.OtherPts。當我將ViewModel.Pts重新分配給ViewModel.OtherPts時,我希望折線自動重新繪製ViewModel.OtherPts中的數據。爲什麼當我將Points集合更改爲引用不同的集合時,不會重繪折線?

我錯過了依賴項屬性系統中是否存在一些事件或一些細微差別?

謝謝!

btw-我沒有在這裏使用任何ObservableProperty或ObservableCollections,因爲我認爲這將在依賴屬性+數據綁定系統中工作。

回答

1

是您PointCollection從DependencyObject的,或者,或者派生的對象內的DependencyProperty,是它實現INotifyPropertyChanged接口的對象的內部,和你提高在點屬性setter PropertyChanged事件?

這些是您必須從視圖模型中通知UI層更改(您現在引用其他集合)的兩個選項。除非你這麼說,否則用戶界面不會知道更改。

相關問題