适用于Windows Phone的RaisePropertyChanged

时间:2010-06-13 12:37:55

标签: windows-phone-7 mvvm-light

我开始使用MVVMLight框架并且有关于绑定到ViewModel中的属性的问题。我发现我必须在属性的setter中调用RaisePropertyChanged方法才能更新View。我必须通过调度程序调用RaisePropertyChanged,否则我会收到线程访问错误。

    public string Lat { get { return _lat; } set
    {
        _lat = value;
        Deployment.Current.Dispatcher.BeginInvoke(() => RaisePropertyChanged("Lat"));
    } }

这可以使用很多代码来获取自动绑定属性。有没有帮助者更清洁地处理这个?

1 个答案:

答案 0 :(得分:3)

当您想要将UI元素绑定到模型类的属性时,必须提升PropertyChanged事件,而不管您是否使用MVVM Light。事实上,使用MVVM Light会更容易,因为它提供了RaisePropertyChanged方法,否则你必须自己编写代码。 :)

只有在可以从不同于UI线程的线程调用属性的set访问器时,才需要使用Dispatcher.BeginInvoke()。否则,可以直接调用RaisePropertyChanged。