【问题标题】:why doesn't a polyline redraw when I change its Points collection to reference a different collection?当我更改其 Points 集合以引用不同的集合时,为什么折线不重绘?
【发布时间】:2011-03-09 03:31:03
【问题描述】:

我对 silverlight 还很陌生,所以希望这是一个基本问题:我有一条折线,它的“Points”(类型:PointsCollection)属性绑定到我的视图模型类中的 PointsCollection 公共成员 Pts。当我从 ViewModel.Pts 添加/删除点时,折线会正确重绘,没有任何问题。但是,如果我在视图模型类中将 Pts 更改为对另一个完全不同的 PointsCollection 对象的引用,则折线不会自动重绘。 Polyline.Points 绑定仍然引用 ViewModel.Pts,但现在 ViewModel.Pts 引用 ViewModel.OtherPts。当我将 ViewModel.Pts 重新分配给 ViewModel.OtherPts 时,我希望折线使用 ViewModel.OtherPts 中的数据自动重绘。

我缺少依赖属性系统中的某些事件或细微差别吗?

谢谢!!!

btw- 我在这里没有使用任何 ObservableProperty 或 ObservableCollections,因为我认为这在依赖属性 + 数据绑定系统中都可以工作。

【问题讨论】:

    标签: c# data-binding silverlight-4.0 dependency-properties


    【解决方案1】:

    您的 PointCollection 是从 DependencyObject 派生的对象内的 DependencyProperty,还是在实现 INotifyPropertyChanged 接口的对象内,您是否在 Points 属性设置器中引发 PropertyChanged 事件?

    这两个选项是您必须从视图模型通知 UI 层更改(您现在引用不同的集合)。除非您告诉 UI,否则 UI 不会知道更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多