MvvmCross Android绑定已启用,无法与Click一起使用 [英] MvvmCross Android binding Enabled not work with Click

查看:14
本文介绍了MvvmCross Android绑定已启用,无法与Click一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个TextView绑定到Enable,Clickable和Click。加载activity时,已启用&;Clickable被绑定为假值,但TextView无法禁用,仍可点击。将绑定值更改为True后,TextView将被禁用。

我发现该问题与绑定Click事件有关。一旦绑定了Click,就会出现上述问题。在没有绑定Click事件的情况下,它可以按预期工作。

在下面的示例代码中,前两个TextViews是可以的。使用绑定单击的最后一个不起作用。

顺便说一句,我在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;
        }
    }

您知道如何修复吗?

谢谢

推荐答案

Stuart所说,ICommand.CanExecuteEnabled属性之间存在一定的交互作用。正在将绑定切换到:

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

Effect

这篇关于MvvmCross Android绑定已启用,无法与Click一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆