dragmove 를 viewmodel에서 처리하는 방법 질문 합니다.

wpf에 mvvm을 적용하며 개발 중 입니다.
사용하는 라이브러리는 mvvm light toolkit 입니다.

얼추 command라던지 이해가 되고 적용하던 도중 문제가 하나 생겼네요ㅠㅠ

제가 만드는 프로그램은 윈도우 상단의 표시줄을 아예 없애고 커스텀해서 만드는 중 입니다.(디자이너가 그렇게 디자인해서 주네요…) 그러다 보디 상단의 표시줄을 잡고 마우스를 이동하면 프로그램 창이 이동 되어야 하는데 mvvm을 적용하지 않고 개발을 한다면 간단하게 MouseLeftButtonDown 이벤트에 this.DragMove(); 을 사용했지만… mvvm을 적용하려하니 어떻게 해야 될지 모르겠네요.

단순한 클릭이면 command로 처리할 텐데 이럴 경우 어떻게 해야하는지 질문 올립니다. ㅠㅠ

1개의 좋아요

DragMove 자체가 View 만 조작하는 거라면 View 에서 이벤트로 처리해도 됩니다.

Command 를 호출하는 건 View 의 이벤트를 통해 ViewModel 의 값을 통제하기 위해 사용하는 거죠.

꼭 모든 View 의 이벤트를 Command 받아 처리해야할 필욘 없어욘.

뭐 굳이 하자면 할 수는 있는뎅…

EventToCommand 같은 걸로 ViewModel 의 Command 와 연결하고
ViewModel 은 특정 property 에 View 의 Behavior 같은 걸 binding 해서
behavior 에서 DragMove 를 호출하면 되긴 하지만…

View 의 동작이 ViewModel 과 관계 없이 수행되는데
굳이 ViewModel 의 Command 를 호출하고, 그걸 다시 View 의 Behavior 와 연결해서 처리하는 방식이랄까?

3개의 좋아요

화면 관련된 코드는 그냥 코드 사용하시면 됩니다.

2개의 좋아요

@mincook 저도 .DragMove() 사용합니다!

2개의 좋아요