작성
·
9
0
가장 기초적인 부분을...몰랐네요
가끔 원하는 것처럼 이벤트가 작동하지 않을 때가 있었는데,,,
그게 routing 시키는 걸 e.Handled를 true로 처리하면 된다는 것을 알았습니다.
C# 의 WPF의 이벤트는 복잡하네요..
Vue 같아요..;;;
MVVM패턴으로도 알려준 이벤트에 대한 특성은 참고해서 작업하면 되는걸까요?
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. Doyeon Noh님.
WPF의 이벤트 시스템과 MVVM 패턴에 대한 질문을 주셨군요. WPF의 이벤트는 다른 프레임워크와는 다소 다르게 작동하는 부분이 있어 생소할 수 있습니다. 특히, RoutedEvent
는 이벤트가 전파되는 방식에서 차이가 나타납니다. e.Handled
를 통해 이벤트 전파를 중지할 수 있다는 점을 깨달으셨다니 다행입니다.
WPF에서 MVVM 패턴을 사용하면서도 이벤트를 다루실 때 몇 가지 알아두면 좋은 점들을 요약해 드릴게요.
RoutedEvent: WPF에서는 이벤트가 하나의 요소에서 시작하여 해당 요소의 상위 요소로 전파될 수 있는 RoutedEvent
가 있습니다. 이벤트가 전파되는 동안 e.Handled
속성을 true
로 설정하여 전파를 중지할 수 있습니다.
MVVM 패턴: ViewModel에서는 이벤트 핸들러를 직접 사용하기보다는 Command
패턴을 이용하는 것이 일반적입니다. 이렇게 하면 UI와 비즈니스 로직이 분리되어 테스트와 유지보수에 유리합니다.
Command: WPF에서 제공하는 ICommand
인터페이스는 Button 클릭과 같은 이벤트를 처리하는 데 사용됩니다. 이를 사용하여 UI 요소와 ViewModel의 명령을 바인딩할 수 있습니다.
EventToCommand: MVVM 프레임워크 중 일부는 이벤트를 커맨드로 통합하는 EventToCommand
기능을 제공합니다. 이를 통해 XAML에서 이벤트를 처리하는 코드를 간결하게 유지할 수 있습니다.
기존의 WPF 강의에서도 이러한 이벤트 처리와 MVVM 패턴에 대해 다루고 있으니, 관련 내용을 복습하시면 더욱 이해에 도움이 될 것입니다.
질문자님께서 더 깊은 이해를 원하신다면 이러한 내용들을 참고하시기 바라며, 추가로 궁금한 점이 있으시면 계속해서 질문해 주세요. 지식공유자님께서도 더욱 상세한 답변을 제공해주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.