2017-11-20 9 views
0

CanExecuteは、私の5つのエントリが有効になったときtrueに変わります。Command(Action、CanExecute)の使い方を教えてもらえますか?

は、今私がCanExecuteを使用する方法と、すべての5つの項目が検証されたときに、この値をtrueに設定する方法は考えを持っていない

SendCommand = new Command(() => SendData()); 

私の送信ボタンにバインドされている、これを持っています。

誰かにリファレンスまたはアドバイスがありますか?

+4

'ICommand'を実装している.NETに –

+1

https://developer.xamarin.com/api/type/Xamarin.Forms.Command/それはどういう意味ですか? – paulvoelker

+1

そして、コンストラクタのドキュメントを見ると、https://developer.xamarin.com/api/constructor/Xamarin.Forms.Command.Command/p/System.Action%7BSystem.Object%7D/System.Func%7BSystem .Object、System.Boolean%7D /そのドキュメントの中で、その使い方を理解していないのですか? –

答えて

1

@Scott Chamberlainに感謝しました。愚かな質問を申し訳ありません....それはあなたが期待するほど簡単でした。

SendCommand = new Command(() => SendData(),() => CanSend()); 

編集:あなたはEventHandlerを追加し、ブールのセッターで彼を上げていることを確認します。

public event EventHandler CanExecuteChanged; 

私はそのようにそれをやった:

public bool CanExecute() 
    { 
     if (IsValid1 && IsValid2 && IsValid3 && IsValid4 && IsValid5) 
     { 
      return true; 
     } else 
     { 
      return false; 
     } 
    } 

などあなたは私たちに建てられた何 `Command`クラスが存在しないソースまたはCommand``のドキュメントを表示する必要が

public bool IsValid1 
    { 
     get => _isvalid1; 
     set 
     { 
      _isvalid1 = value; 
      PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsValid1))); 
      ((Command)SendCommand).ChangeCanExecute(); 
     } 
    } 
+1

WPFとよく似ています。 '()=> {return someCondition && someOtherCondition}' –

+0

明日これを試してみます。ありがとう! – paulvoelker

+1

CanSendの条件が変化したときにChangeCanExecuteで更新するのを忘れないでください。 – Evk

関連する問題