По моему опыту работы с Silverlight, попытка сделать это все равно приведет к исключению.
По сути, вам необходимо обновить связанные свойства из потока диспетчера, как если бы вы изменяли пользовательский интерфейс напрямую.
Чтобы позволить ViewModel сделать это, не зная о реальном Dispatcher
, я нашел полезным создать интерфейс IDispatcher
, затем использовать SameThreadDispatcher
для тестов и SystemDispatcher
( делегаты на реальные вещи) для производства. Затем вы передаете ViewModel IDispatcher
как зависимость.