WPF UI 이벤트(예: SelectionChanged)를 MVVM의 ViewModel 명령에 바인딩
MVVM 패턴은 UI 로직을 데이터 레이어에서 분리하는 것을 옹호합니다. 이러한 이유로 ViewModel에서 UI 이벤트를 처리하는 것이 중요합니다. 제공된 코드 예제에서 SelectionChanged 이벤트는 코드 숨김으로 처리됩니다. 이 이벤트를 ViewModel로 이동하는 방법을 살펴보겠습니다.
UI 이벤트를 명령에 바인딩
WPF는 데이터 바인딩이라는 강력한 기능을 제공합니다. 이를 통해 UI 요소를 ViewModel의 속성이나 명령에 바인딩할 수 있습니다. 이 예에서는 ContactList의 SelectionChanged 이벤트를 ViewModel의 명령에 바인딩합니다.
EventTrigger 및 InvokeCommandAction 사용
이를 수행하려면 Windows.Interactivity 네임스페이스에서 EventTrigger 및 InvokeCommandAction을 사용할 수 있습니다. 예시는 다음과 같습니다.
<code class="language-xml"><ListBox ...> <i:Interaction.Triggers> <i:EventTrigger EventName="SelectionChanged"> <i:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}" /> </i:EventTrigger> </i:Interaction.Triggers> </ListBox></code>
'i' 네임스페이스 참조
EventTrigger 및 InvokeCommandAction을 사용하려면 System.Windows.Interactivity 어셈블리를 참조해야 합니다. 프로젝트의 참조 패널을 열고 참조 추가 > 어셈블리 >
ViewModel에 명령 바인딩ViewModel에서 이벤트를 처리하기 위한 공개 명령을 만듭니다.
창의 DataContext에 명령을 바인딩합니다.
<code class="language-csharp">public ICommand SelectedItemChangedCommand { get; }</code>
<code class="language-csharp">this.DataContext = new MyAppViewModel();</code>
MyAppViewModel에서 SelectedItemChangedCommand를 구현하고 원래 이벤트 핸들러에서와 마찬가지로 태그 가져오기 및 그룹화와 같은 필요한 로직을 수행합니다.
이러한 단계를 수행하면 SelectionChanged 이벤트 처리를 ViewModel로 성공적으로 이동하여 MVVM 원칙을 따르고 UI 로직을 데이터 계층에서 분리했습니다.
위 내용은 SelectionChanged와 같은 WPF UI 이벤트를 MVVM의 ViewModel 명령에 바인딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!