정보 목록을 별도의 창에 표시하고 주 응용 프로그램의 별도 스레드에 정보 목록을 표시하는 wpf gui가 있습니다. 사용자가 기본 창에서 작업을 수행하면 측면 창이 업데이트됩니다. 예를 들어 주 창에서 페이지 아래쪽을 클릭하면 측면 창의 목록 상자가 아래로 페이지됩니다.wpf 명령 패턴
지금이 응용 프로그램의 아키텍처는 매우 혼란스럽고 분명히 할 수있는 방법이 있습니다. 그것은 다음과 같습니다
주 창 이벤트를 사용하여 SideWindowDisplay의 인스턴스와 통신하는 싱글 SideWindowControl을 포함 - 그래서, 예를 들어, PageDown 키 버튼이 작동 것 같은 :
1) 버튼의 이벤트 핸들러 주 창에서 SideWindowControl.PageDown()을 호출합니다. PageDown() 함수에서 이벤트가 만들어져 throw됩니다. 2) PageDown() 함수에서
2)를 호출합니다.
3) 마지막으로 gui, ShowSideWindowDisplay가 SideWindowControl.Actions 이벤트를 구독하여 이벤트를 처리하고 실제로 목록 상자를 아래로 스크롤합니다. Dispatcher.Invoke를 통해 명령을 실행하여 다른 스레드에 있기 때문에 실제로 스크롤합니다()
이것은 매우 난잡한 방법으로 보이며 명확한 방법이 있어야합니다 (변경할 수없는 유일한 부분은 기본 창과 측면 창이 다른 스레드에 있어야한다는 것입니다). 아마도 WPF 명령을 사용합니까?
정말 감사드립니다. 감사합니다.