2017-11-10 4 views
1

텍스트 상자가 변경되면 텍스트 상자가 null인지 확인하고 단추를 사용할 수없는 메서드를 호출하려면 어떻게해야합니까?텍스트 상자 텍스트가 변경된 경우 WPF MVVM 호출 방법

XAML :

<Button x:Name="button1" Content="Save" IsEnabled="{Binding BtnIsEnabled}" 

<TextBox x:Name="textBox1" Text="{Binding SelectedItem.username, ElementName=Users, UpdateSourceTrigger=PropertyChanged}" 

내 방법 :

public void SaveBtnEnable() 
    { 
     if (!((string.IsNullOrEmpty(username)) || (string.IsNullOrEmpty(name)) || (string.IsNullOrEmpty(email)))) 
     { 
      BtnIsEnabled = true; 
     } 
     else 
     { 
      BtnIsEnabled = false; 
     } 
    } 



    private Boolean _BtnIsEnabled; 
    public Boolean BtnIsEnabled 
    { 
     get 
     { 
      return _BtnIsEnabled; 
     } 
     set 
     { 
      _BtnIsEnabled = value; 
      OnPropertyChanged("BtnIsEnabled"); 
     } 
    } 

답변

1

당신이 당신의 버튼을 ICommand을 사용하고 뷰 모델 (*)로 Users.SelectedItem를 결합하는 경우를 확인하기 위해 CanExecute 방법을 사용할 수 있습니다 viewmodel 속성 값 버튼을 비활성화하려면 false을 반환하십시오.

(*) 대신 Users.SelectedItemExecuteCanExecute 함수에 대해 CommandParameter으로 바인딩 할 수도 있습니다. SelectedItem.username의 세터에

0

단지 확인을하고 metod 전화 :

public string username 
{ 
    get {return _username;} 
    set 
    { 
     _username = value; 
     OnPropertyChanged("username"); 
     SaveBtnEnable(); 
    } 
} 

사용자 이름이 공개 재산이며 _username 내 예제에서 개인 변수를

관련 문제