.net 引发属性更改事件的速度非常慢
我正在使用Windows RT/Windows应用商店应用程序,在我的代码中执行.net 引发属性更改事件的速度非常慢,.net,windows-runtime,mvvm-light,winrt-xaml,inotifypropertychanged,.net,Windows Runtime,Mvvm Light,Winrt Xaml,Inotifypropertychanged,我正在使用Windows RT/Windows应用商店应用程序,在我的代码中执行RaisePropertyChanged(“…”)调用时(使用MVVM light框架,如果我要直接实现INotifyPropertyChanged接口,这应该非常类似于标准的OnPropertyChanged,事实上我测试了这两个接口)它非常慢 UI更新发生之前的延迟会有所不同;我引发一个属性更改事件来禁用一个按钮和三个文本框,但是在UI上执行此更新通常需要1.5-2秒。相当令人沮丧。为什么这不是即时的?我的.xa
RaisePropertyChanged(“…”)
调用时(使用MVVM light框架,如果我要直接实现INotifyPropertyChanged
接口,这应该非常类似于标准的OnPropertyChanged
,事实上我测试了这两个接口)它非常慢
UI更新发生之前的延迟会有所不同;我引发一个属性更改事件来禁用一个按钮和三个文本框,但是在UI上执行此更新通常需要1.5-2秒。相当令人沮丧。为什么这不是即时的?我的.xaml
视图不是很复杂
在我的按钮上命令
:
SubmitCommand = new RelayCommand<string>(RunSubmitCommand);
...
private async void RunSubmitCommand(string param)
{
submitted = true;
RaisePropertyChanged(() => CanSubmit);
RaisePropertyChanged(() => CanEnterValues);
}
文本字段和提交按钮在.xaml
上看起来像这样:
<TextBox x:Name="TextField1Box" TabIndex="1" Text="{Binding Field1}"
IsEnabled="{Binding CanEnterValues}" Style="{StaticResource ValueTextBoxStyle}"
LostFocus="Field1TextBox_LostFocus" />
... x 2 more
<Button x:Name="SubmitButton" TabIndex="4" Command="{Binding SubmitCommand}"
Content="Submit Values" IsEnabled="{Binding CanSubmit}"
Style="{StaticResource ButtonStyle}" />
... x 2更多
如果您对延期有任何意见,我们将不胜感激
谢谢您能创建一个小的复制项目来测试它吗?它应该是即时的。是的,我可能会尝试这个,我确实有一个倒计时,从60秒开始倒计时,我想知道更新是否会排队或其他什么\也许它会在等待时阻塞UI线程一秒钟。或者某些动画会导致缓存模式隐式更改为BitmapCache,从而阻止显示更改。抱歉,我一直很忙,明天晚上将尝试执行此操作。
<TextBox x:Name="TextField1Box" TabIndex="1" Text="{Binding Field1}"
IsEnabled="{Binding CanEnterValues}" Style="{StaticResource ValueTextBoxStyle}"
LostFocus="Field1TextBox_LostFocus" />
... x 2 more
<Button x:Name="SubmitButton" TabIndex="4" Command="{Binding SubmitCommand}"
Content="Submit Values" IsEnabled="{Binding CanSubmit}"
Style="{StaticResource ButtonStyle}" />