1

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

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

这可行,但它有很多代码来获取自动绑定属性。有没有帮助更干净地处理这个问题?

4

1 回答 1

3

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

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

于 2010-06-13T20:26:20.407 回答