我有一个WPF应用程序,我在我的ViewModel中有以下StepCount属性,它实现了INotifyPropertyChanged,然后我将它绑定到我的View中的TextBox.
public int StepCount
{
get { return _stepCount; }
set
{
_stepCount = value;
OnPropertyChanged("StepCount");
}
}
Run Code Online (Sandbox Code Playgroud)
在XAML中,这是DataBinding的样子:
<TextBox Text="{Binding Path=StepCount}" />
Run Code Online (Sandbox Code Playgroud)
这很好用,如果我更改StepCount值,Textbox值会相应更新.
但是,我的问题是我有另一个增加StepCount的线程,在这种情况下,TextBox值没有更新.线程结束后,Textbox值将更新为正确的值.
每当我的其他线程增加StepCount时,我需要更新Textbox值.就像现在一样,Textbox值仅在线程完成后显示更新.
另一个线程正在递增StepCount,但是在线程结束之前,UI中不会显示更改.
有任何想法吗?
UPDATE
我感谢所有的回复.这个问题令人费解,因为以前工作的代码似乎已经停止工作,就像这些特殊绑定的情况一样.
当我安装VS 2011 Beta时,它会安装.NET 4.5 Beta Framework,当我因为怀疑它可能导致问题而卸载VS 2011 Beta时,它没有卸载.NET 4.5 Beta Framework.
我刚刚卸载了.NET 4.5框架并进行了.NET 4.0框架的修复安装.完成这些步骤后,我的数据绑定工作正常,现在只要另一个线程增加StepCount,Textbox就会正确更新.
因此,看起来,.NET 4.5 Beta Framework可能会导致数据绑定问题.
我将通过向Microsoft提交问题来跟进此问题.
感谢大家的回应.