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;"