我正在尝试向主窗口发送两个事件,以便我可以显示某种动画,让用户知道我正在更新数据。
这是一个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");
}
答案 0 :(得分:0)
C#有Application.DoEvents但除非绝对必要,否则我不建议使用它。
您是否尝试在Dispatcher.Invoke?
中包装OnPropertyChanged来电