提升房产变更事件非常缓慢

时间:2013-01-04 14:03:50

标签: .net windows-runtime mvvm-light winrt-xaml inotifypropertychanged

我正在开发一个Windows RT / Windows应用商店应用,并且在我的代码中执行RaisePropertyChanged("...")调用时(使用MVVM-light框架,如果我的话,这应该与标准OnPropertyChanged非常相似是直接实现INotifyPropertyChanged接口 - 事实上我测试过它们都很慢。

UI更新发生之前的延迟确实有所不同;我引发了一个属性更改事件以禁用一个按钮和三个文本框,但是要在UI上执行此更新通常需要1.5-2秒。相当令人沮丧。为什么这不是即时的?我的.xaml视图不是很复杂。

点击我的按钮Command

        SubmitCommand = new RelayCommand<string>(RunSubmitCommand);
        ...
        private async void RunSubmitCommand(string param)
        {
            submitted = true;
            RaisePropertyChanged(() => CanSubmit);
            RaisePropertyChanged(() => CanEnterValues);
        }

属性看起来像这样:

        public bool CanSubmit
        {
            // formatted for readability on SO
            // IsField1Valid, IsField2Valid, IsField3Valid I should mention 
            // just resolve nullable bool's
            get { return !submitted && 
                         IsField1Valid.GetValueOrDefault() && 
                         IsField2Valid.GetValueOrDefault() && 
                         IsField3Valid.GetValueOrDefault(); }
        }

        public bool CanEnterValues
        {
            get { return !submitted; }
        }

.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}" />

对延迟的任何想法都将不胜感激。

由于

0 个答案:

没有答案