初始值:
KeyBords有两个值One、Two.
SelectedKeyBordValue=Two
.
xaml文件代码:
<ComboBox ItemsSource="{Binding KeyBords}" SelectedValue="{Binding SelectedKeyBordValue}"/>
ViewModel代码:
public String SelectedKeyBordValue
{
get { return selectedKeyBordValue; }
set
{
if (!this.SelectedKeyBordChanged(value))
{
return;
}
selectedKeyBordValue = value;
base.RaisePropertyChanged("SelectedKeyBordValue");
}
}
最初选中时的Two。当我选择One的时候,this.SelectedKeyBordChanged(value))返回false.
ViewModel里面SelectedKeyBordValue值还是Two,但是界面已经改为One。
我的问题是:我想界面值也是Two和SelectedKeyBordValue值一样.
如果以上看不懂可以看需求:
Combobox绑定的集合项包含值1,值2。值1处于选中状态和后台同步。
当界面选择值2的时候,我希望前台和后台值不变(当然是出现了错误)。
目前状况是:前台变了,而后台没变。
正解:其实就是线程同步没有实现前台更改,前台更新改为异步就可以。
将IsAsync设置为True