2010-07-08 1 views

답변

0

TextChanged_event 또는 SelectionchangedEvent를 사용하면 ViewModel 속성에 바인딩하고 알림 메시지 (MVVMLight의 Messenger 도우미 클래스 확인)를 사용하여 동일한 결과를 얻을 수 있기 때문에 TextChanged_event 또는 SelectionchangedEvent를 사용할 필요가 없습니다. 당신이 필사적으로 해당 이벤트에 대한 핸들러가 필요한 경우

, 당신은 당신이에 대한 명확한 그림을 얻기 위해이 illustrationexample program 메신저 클래스에 대한 자세한 내용 및 this example을 확인할 수 있습니다 RelayCommand

를 사용하는 EventToCommand 행동 도우미 클래스를 시도 할 수 있습니다 EventToCommand 동작

0

당신이하는 일은 ViewModel의 속성 설정 메소드에서 변경 사항을 관찰하는 것입니다.

 <TextBox Text="{Binding Mode=TwoWay, 
           Path=ViewModelProperty, 
           UpdateSourceTrigger=PropertyChanged}" /> 

그리고 뷰 모델 클래스에

,이 같은 속성을 정의 :

Private _ViewModelProperty As String 
    Public Property ViewModelProperty As String 
     Get 
      Return _ViewModelProperty 

     End Get 
     Set(ByVal value As String) 
      ' your test for "TextChanged" goes here 
      If value <> _ViewModelProperty Then 
       _ViewModelProperty = value 
       OnViewModelPropertyChanged() 
      End If 
     End Set 
    End Property 
    Private Sub OnViewModelPropertyChanged() 
     ' logic for handling changes goes here 
    End Sub 

이 모든 시간을 OnViewModelPropertyChanged()을 실행하는 부작용이

XAML은 다음과 같을 것 ViewModelProperty에 새 값을 지정하십시오. 그러나 속성 대신 보조 필드에 할당하여이를 피할 수 있습니다.

그렇지 않으면 사용중인 ICommand 인터페이스를 구현 중입니다. 그것은 당신이 얻는 것이 얼마나 복잡한 지에 달려 있습니다.

+0

ComboBox SelectionchangedEvent는 어떨까요? 내가 제거 된 항목 및 추가 된 항목을 원한다면? –

+0

MVVM 패턴을 "순수하게"유지하려면 ICommand를 구현해야합니다. XAML에 코드 숨김이 없다고 주장하는 UI 디자이너가 없다면 코드 숨김 부분에 SelectionChanged 이벤트 처리기를 구현하고이를 사용하여 ViewModel의 메소드. –