Mvvmcross Android 已启用 TextInputEditText 绑定

Mvvmcross Android TextInputEditText Binding Enabled

我有一个 Switch 和一个 TextInputEditText。 'Enabled' 都绑定到视图模型中的同一字段。

加载activity时,绑定字段设置为false。 Switch 按预期被禁用。但是,已启用 TextInputEditText。 'Clickable' 有同样的问题。文字绑定成功

将绑定字段更改为 true 和 false 后,TextInputEditText Enable & Clickable 可以正常工作。似乎只有在最初加载时才会发生。

            <android.support.v7.widget.SwitchCompat
                style="@style/EntryTextStyle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                local:MvxLang="Text LabelDeferArrivalNotice"
                local:MvxBind="Checked RouteMarker.DeferArrivalNotice; Enabled RouteMarker.ArrivalNotice" />
            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <android.support.design.widget.TextInputEditText
                    android:id="@+id/edittext_route_marker_EffectiveFromDateTime"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:singleLine="true"
                    android:editable="false"
                    android:focusableInTouchMode="false"
                    style="@style/EntryTextStyle"
                    local:MvxLang="Hint LabelEffectiveFromTime"
                    local:MvxBind="Text DateTimeToString(RouteMarker.EffectiveFromDateTime); 
                                   Enabled RouteMarker.ArrivalNotice;
                                   Clickable RouteMarker.ArrivalNotice;
                                   Click PromptDeferTimeCommand" />

TextInputEditText 有什么特别之处吗?

谢谢

这是 MvvmCross 的问题,正如 Stuart 所说,ICommand.CanExecuteEnabled 属性 之间存在一些交互。将绑定切换为:

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

希望对搜索此问题的人有所帮助。