У меня есть приложение UWP, которое открывает окно проекции (similar to the sample app). Теперь я хочу реагировать на RotationChanged
-Event в обоих окнах, независимо от того, какое окно активно.UWP: Одновременно управляйте двумя окнами с RadialController
Могу ли я как-то поделиться экземпляром для RadialController
? Или мне нужно управлять им в одном представлении и вручную передать событие второму?
Обновленный вопрос: Как использовать тот же экземпляр ViewModel в обоих окнах?
P.s: Я думаю, что добавление RadialController
и/или Surface-Dial
в качестве тегов может иметь смысл.
Я не уверен, что это так просто. Когда 'CoreWindow' запускается на выделенных потоках, каждый из них и не является гибким, вам придется реализовать какой-то маршалинг. Если проекция языка C# уже реализует это маршалинг, ответственность за вас несут. Хотя я мог ошибаться. – IInspectable
К счастью WPF/UWP были разработаны с нуля с помощью диспетчера и многопоточности: http://stackoverflow.com/questions/32671719/uwp-updating-ui-through-data-binding-from-a-background-thread Возможно, вам придется написать код привязки вручную, а затем использовать класс Binding, но это должно быть о нем. Это один из редких случаев, когда вам нужен код Viewside (так как это проблема с приставкой). Немного странно, что элемент GUI находится в альтернативном потоке (основной/исходный поток по умолчанию), но для рисования тяжелых вещей он определенно имеет смысл. – Christopher
Во-первых, я использую MVVM. После вашего сообщения я пытался связать обе Windows с одной и той же ViewModel, но в итоге оказался с двумя отдельными экземплярами: -/Мне нужно отправить события вручную во второе окно с помощью диспетчера? – Thomas