RaisePropertyChanged для Windows Phone - PullRequest
1 голос
/ 13 июня 2010

Я начинаю использовать инфраструктуру MVVMLight и у меня возникает вопрос о привязке к свойствам во ViewModel. Я обнаружил, что мне нужно вызвать метод RaisePropertyChanged в установщике для свойства, чтобы обновить представление. И я должен вызвать RaisePropertyChanged через диспетчер, в противном случае я получаю ошибку доступа к потоку.

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

Это работает, но много кода для получения свойств автоматического связывания. Есть ли помощник для более аккуратного обращения?

1 Ответ

3 голосов
/ 14 июня 2010

Повышение событий PropertyChanged является обязательным, когда вы хотите привязать элементы пользовательского интерфейса к свойствам классов вашей модели, независимо от того, используете вы MVVM Light или нет.На самом деле с MVVM Light все проще, поскольку он предоставляет метод RaisePropertyChanged, который в противном случае вам пришлось бы кодировать самостоятельно.:)

Использование Dispatcher.BeginInvoke () необходимо только в том случае, если метод доступа set вашего свойства может быть вызван из потока, отличного от потока пользовательского интерфейса.В противном случае можно вызывать RaisePropertyChanged напрямую.

...