【发布时间】:2013-11-18 21:09:58
【问题描述】:
感谢您的宝贵时间。我对 WPF 有这样的问题......它更新 UI,它仅在方法(由按钮单击触发)到达其结束时更新它。但是,在我的真实应用中,我需要立即更新 UI 以查看信息。
我尝试阅读教程和帖子,但我已经准备好放弃了....我将不胜感激任何想法为什么会发生以及该怎么做:-)。
我有一个标准的 xaml:带有一个文本框和一个按钮:
<TextBox Text="{Binding FirstName}"/>
<Button Content="Run" Click="Button_Click" />
背后
public partial class MainWindow
{
public Person Person = new Person();
public MainWindow()
{
InitializeComponent();
DataContext = Person;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Person.FirstName = "John";
Thread.Sleep(10000);
///// Only Here I can see the update.
}
}
而DataContext是:
public class Person:INotifyPropertyChanged
{
private string _FirstName;
public string FirstName
{
get { return _FirstName; }
set
{
if (_FirstName == value)
return;
_FirstName = value;
OnPropertyChanged("FirstName");
}
}
....
标准 OnProertyChanged 实现。
【问题讨论】:
-
删除
Thread.Sleep()。您正在使 UI 线程休眠,因此它无法重新渲染。 -
嗨,HighCore,感谢您的回答。但这只是对我真实应用程序工作流程的模拟。在真正的应用程序中,我有一个 Selenium webdriver 测试,我想通知用户这些测试。谢谢
标签: c# wpf inotifypropertychanged