2011-04-07 3 views
0

내 응용 프로그램에서 AutoCompleteBox가 있고 해당 ItemSource/SelectedItem 속성을 ViewModel에 바인딩했습니다.ViewModel (MVVM)에 UI 컨트롤 이벤트를 바인딩하는 방법은 무엇입니까?

이제 이벤트를 바인딩하고 바인딩 할 방법이 없습니다. ViewModel을 사용하여 AutoCompeletBox KeyUP/KeyDown 이벤트를 어떻게 처리합니까?

저는 응용 프로그램에 Button이 있고 RelayCommand를 사용하여 해당 단추의 명령을 바인딩했습니다 (작동 중입니다).

바인딩에 대한 세부적인 내용을 알려주십시오.

답변

1

GalaSoft MVVM 툴킷을 사용하는 경우 EventToCommand를 사용하여 KeyUp 이벤트를 명령에 바인딩 할 수 있습니다. 여기에 체크 아웃 - http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx

당신은 또한

Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}" 

기본 바인딩 동작을 LostFocus에 "속성이 변경"하는 자동 완성 상자의 바인딩 식의 UpdateSourceTrigger 속성을 변경 할 수 있습니다, 그래서 그러면 ViewModel이 즉시 업데이트됩니다.

+0

안녕하세요, NJerbert 저는 툴킷을 사용하고 있지 않습니다. – PramodChoudhari

+0

질문을 소스로 업데이트하여 이벤트를 바인딩하려는 것을 더 자세히 설명 할 수 있습니까? – njebert

0

KeyUp/KeyDown 이벤트 처리는 View 구현의 일부 여야합니다. 그런 다음 View에서 논리를 만들면 바인딩이나 명령을 사용하여 ViewModel과의 자동 완성을위한 관련 값을 얻을 수 있습니다.

그리고 모든 논리가 VM에 있어야한다고 생각하는 어떤 순수 주의자도 하향 투표를 시작합니다. View에 바인딩 된 논리가 View에 있어야한다고 생각합니다.

관련 문제