Вызов ICommand.CanExecuteChanged из потока
От: Ed.ward Россия  
Дата: 23.05.11 21:55
Оценка:
Добрый день, господа.

Столкнулся со странным.
Я уже привык, что WPF binding сам маршалит вызовы в нужный поток.

было
<Button Content="Mega button" IsEnabled={Binding Path=IsEnabled} Click=.../>


Свойство IsEnabled ViewModel менялось из произвольного потока и всё прекрасно работало. В процессе рефакторинга стало

<Button Content="Mega button" Command={Binding Path=MegaCommand}/>


Так вот, теперь вызов ICommand.CanExecuteChanged из того же потока, что и ранее изменение IsEnabled приводит к исключению
"The calling thread cannot access this object because a different thread owns it."

Собвственно вопрос, почему привязка свойства работает, а привязка команды нет?
И как сделать, чтобы и с командой всё работало так же как и со свойством?

спасибо

Ed.ward
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.