У меня есть графический интерфейс wpf, который отображает список информации в отдельном окне и в отдельном потоке от основного приложения. Когда пользователь выполняет действия в главном окне, боковое окно обновляется. (Например, если вы щелкнете страницу вниз в главном окне, список в боковом окне будет перелистывать страницу вниз.)
Сейчас архитектура этого приложения выглядит очень грязной, и я уверен, что есть более чистый способ сделать это. Это выглядит так:
Главное окно содержит одноэлементный SideWindowControl, который взаимодействует с экземпляром SideWindowDisplay с помощью событий - так, например, кнопка pagedown будет работать так:
1) обработчик события кнопки в главном окне вызывает SideWindowControl.PageDown ()
2) в функции PageDown () создается и генерируется событие.
3) наконец, графический интерфейс, ShowSideWindowDisplay подписывается на событие SideWindowControl.Actions, обрабатывает событие и фактически прокручивает список вниз - обратите внимание, поскольку он находится в другом потоке, он должен сделать это, выполнив команду через Dispatcher.Invoke ( )
Это только кажется очень грязным путем, и должен быть более ясный путь (единственная часть, которая не может измениться, - это то, что главное окно и боковое окно должны быть в разных потоках). Возможно, с помощью команд WPF?
Буду очень признателен за любые предложения !! Спасибо