MvvmCross Android привязка включена не работает с Click

У меня есть TextView связан с Включено, Clickable и нажмите. Когда activity загружен, включен & Clickable были связаны с ложной ценностью, но TextView не может быть отключен и по-прежнему можно нажимать После изменения связанного значения на true и затем false, TextView выключен.

Я обнаружил, что проблема связана с привязкой события Click. Как только Клик привязан, возникает упомянутая проблема. Не привязывая событие Click, оно работает как положено.

В следующем примере кода первые 2 TextViews ОК. Последний с привязкой Click не работает.

Кстати, у меня есть эта проблема с 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 ответ

Решение

Как сказал Стюарт, существует некоторое взаимодействие между ICommand.CanExecute и Enabled имущество. Переключение привязки на:

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

Эффект

Другие вопросы по тегам