【发布时间】:2009-08-07 22:20:02
【问题描述】:
我正在尝试向主窗口发送两个事件,以便我可以显示某种动画,让用户知道我正在更新数据。
这是一个 ObservableCollection 对象,因此 OnPropertyChanged 会立即被主窗口上的绑定拾取。睡眠只是在那里,以便用户可以看到动画。
但是,从未见过第一个 OnPropetyChanged。我假设这是因为我们在这里处于单个线程中,并且 timer_Tick 必须在 GUI 更新之前完成。有什么建议吗?在 VB6 领域,我们将使用 DoEvents 或 Form.Refresh。
谢谢!
private void timer_Tick(object sender, EventArgs e)
{
Loading = "Before: " + DateTime.Now.ToString();
OnPropertyChanged("Loading");
LoadData();
Thread.Sleep(1000);
//Loading = Visibility.Hidden;
Loading = "After: " + DateTime.Now.ToString();
OnPropertyChanged("Loading");
}
【问题讨论】:
标签: wpf multithreading binding