我有一个简单的WPF窗口,其上有一个Canvas,Canvas在Path中有一个带有GeometryGroup的Path对象:
<Path
Stroke="Red"
StrokeThickness="3">
<Path.Data>
<GeometryGroup Children="{Binding Elements}" />
</Path.Data>
</Path>
所以我在InitializeComponent()
调用之前初始化Elements集合并且它正确显示。之后使用System.Timers.Timer
我更新现有的形状点,以便它们移动。这有效。但问题是我只看到Canvas在用鼠标移动WPF窗口时更新其结果。如果我把它留在那里,那么最后一张图片就会挂起,但点会更新。
当我再次开始移动WPF窗口并且Shapes跳转到最新位置时,我可以看到这一点。
有关如何解决这个问题以及为什么要这样做的任何想法?
答案 0 :(得分:1)
您需要在要绑定的类上实现INotifyPropertyChanged,项目列表应实现INotifyCollectionChanged,如ObservableCollection。一旦这样做,就不需要计时器或调度员。