2017-12-06 15 views
0

私はTextViewを有効にしました。Clickableとクリックします。 activityがロードされると、Enabled & Clickableはfalse値にバインドされましたが、TextViewは無効にすることはできません。&はまだクリック可能です。バインドされた値をtrueに変更した後、&をfalseにすると、TextViewは無効になります。MvvmCross Androidバインディング有効になっていませんクリックして

問題はClickイベントのバインドに関連していることがわかりました。 Clickがバインドされると、上記の問題が発生します。 Clickイベントをバインドせずに、期待どおりに動作します。

次のサンプルコードでは、最初の2 TextViewsはokです。綴じ込みの最後のクリックは動作しません。

私はTextInputEditTextとこの問題があります。状況はTextViewにも当てはまるとわかりましたので、私はTextViewを使って説明しています。

  <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="test textview can be disabled at load" 
      style="@style/EntryTextStyle" 
      local:MvxBind="  Enabled RouteMarker.ArrivalNotice" /> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="test textview with no click command, can be disabled at load" 
      style="@style/EntryTextStyle" 
      local:MvxBind="  Enabled RouteMarker.ArrivalNotice; 
            Clickable RouteMarker.ArrivalNotice" /> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="test textview with click command cannot be disabled at load" 
      style="@style/EntryTextStyle" 
      local:MvxBind="  Enabled RouteMarker.ArrivalNotice; 
            Clickable RouteMarker.ArrivalNotice; 
            Click DoSomethingCommand" /> 

    private IMvxAsyncCommand _doSomethingCommand; 
    public IMvxAsyncCommand DoSomethingCommand 
    { 
     get 
     { 
      _doSomethingCommand = _doSomethingCommand ?? new MvxAsyncCommand(async() => 
      { 
       await Task.Delay(10); 
      }); 
      return _doSomethingCommand; 
     } 
    } 

どのように修正するのですか?

おかげ

答えて

1

Stuartが言ったように、ICommand.CanExecuteEnabled財産との間に何らかの相互作用があります。バインディングの切り替え:

local:MvxBind="Click DoSomethingCommand;Enabled RouteMarker.ArrivalNotice;Clickable RouteMarker.ArrivalNotice;" 

Effect

+0

解決済み。すばらしいです。ヨーク、どうもありがとう – Nick

関連する問題