我有這樣的屬性。奇怪的行爲綁定與屬性更改和繁忙的純屬性UIThread
public double RollDegrees
{
get
{
return rollDegrees;
}
set
{
if (rollDegrees != value)
{
rollDegrees = value;
OnPropertyChanged(PROPERTY_NAME_ROLL_DEGREES);
}
}
它綁定到一個xaml控件,並且UI在正常情況下更新完美。 此屬性在非UI線程上更新,但據我所知,使用普通屬性對Dispatcher.BeginInvoke進行更新並不是必須的。
但是,當應用程序正在UI線程上運行繁忙的更新(地圖控件隨更新而快速移動)此屬性的UI綁定未更新,則當繁忙更新完成屬性時,將再次更新UI。
但如果我把
Application.Current.Dispatcher.BeginInvoke((Action)(() =>
{
RollDegrees = (OperationEntity as Level).RollDegrees;
}));
然後UI完美的作品
爲什麼這種情況正在發生任何提示?也許在忙碌的更新中有什麼?或者當UI調度程序已滿且繁忙時,這是正常行爲?
但我讀了WPF marshalls屬性更改爲UI線程。但是當UI線程忙時,這不起作用? – isra60
這就是爲什麼它在UI線程變爲空閒時工作。 – ViVi
所以.. WPF自動編組提出低優先?? ?? – isra60