프로그래밍/WPF

[WPF] MouseBinding KeyBinding Binding

흔한티벳여우 2022. 8. 3. 17:30
반응형

WPF 를 사용하다보면 마우스나 키보드를 이용하여 상호작용을 해야할 때가 있다.

이럴때 컨트롤에 InputBindings을 이용하여 MVVM으로 바인딩하는 방법이 있다.

 

<ListView>
          <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.InputBindings>
                                <MouseBinding Gesture="LeftDoubleClick"  Command="{Binding Path=DataContext.ListDoubleClickCommand,  RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"/>
                            </Grid.InputBindings>
                        </Grid>
            </ListView.ItemTemplate>
</ListView>

 

MouseBinding 할때 Gesture를 이용해도 되고, MouseAction을 사용해도 된다.

보통은 저렇게 쓸때 자동완성기능에 없는데 MouseBinding의 경우 아래의 URL가서 MouseAction 관련 Enum을 확인하면된다.

https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.input.mousebinding?view=windowsdesktop-6.0 

 

MouseBinding 클래스 (System.Windows.Input)

MouseGesture를 RoutedCommand 또는 다른 ICommand 구현에 바인딩합니다.

docs.microsoft.com

마찬가지로 KeyBinding도 똑같다.

https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.input.keybinding?view=windowsdesktop-6.0 

 

KeyBinding 클래스 (System.Windows.Input)

KeyGesture를 RoutedCommand(또는 다른 ICommand 구현)에 바인딩합니다.

docs.microsoft.com

 

반응형