Я занимаюсь разработкой приложения Lync Silverlight в Silverlight и сейчас пытаюсь перевести его на WPF.
Однако я столкнулся с некоторыми проблемами схожести потоков.Например, я отображаю состояние клиента Lync на своей странице в текстовом блоке, и поэтому в моем коде есть встроенный обработчик события, изменяющего состояние, который записывает новое состояние в текстовый блок всякий раз, когда изменяется состояние клиента Lync.
Теперь это отлично работает в silverlight, но, по-видимому, не разрешено в WPF.Теперь мои вопросы:
Почему это работает в Silverlight, а не в WPF, хотя Silverlight должен быть подмножеством WPF?
Сходство с потоками является важной концепцией, и я знаю, что мы можем использовать диспетчер invoke, но разве это не превосходит концепцию асинхронного программирования в форме обработчиков событий и обратных вызовов?
У меня есть кнопка, определенная на моей странице XAML, и определенный для нее обработчик события click может обращаться к другим элементам пользовательского интерфейса, она не страдает от проблемы, описанной выше.
Но если я определю экземпляр LyncClient в своем коде позади, определенные для него обработчики событий не смогут получить доступ к элементам пользовательского интерфейса.Почему так, я не обнаружил такой разницы между UIElements и другими объектами в Silverlight?