Xamarin.android MVVMCross Android按钮启用

Xamarin.android MVVMCross Android按钮启用,xamarin.android,mvvmcross,Xamarin.android,Mvvmcross,我是Android MVVMCross框架的新手,在如何启用/禁用按钮方面遇到了问题。我在这一带找不到文件。 代码视图模型: private bool _buttonEnabled; public bool ButtonEnabled { get { return string.IsNullOrEmpty(EmailLogin);} set { _buttonEnabled = val

我是Android MVVMCross框架的新手,在如何启用/禁用按钮方面遇到了问题。我在这一带找不到文件。 代码视图模型:

    private bool _buttonEnabled;
    public bool ButtonEnabled
    {
        get
        { return string.IsNullOrEmpty(EmailLogin);}
        set
        {
            _buttonEnabled = value;
            RaisePropertyChanged(() => ButtonEnabled);
        }
    }
Android axml:

 <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/Login"
    android:background="@color/yellow"
    local:MvxBind="Enabled(ButtonEnabled)"/>

但无法让它工作。我试图实现的是,若EmailLogin变量为NullOrEmpty,那个么按钮应该被禁用。我哪里做错了


希望我没有推动这个,但我可以添加额外的绑定到它,这样,如果它被禁用或启用,我可以改变按钮的颜色

您只需将绑定语法更改为:

 <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/Login"
    android:background="@color/yellow"
    local:MvxBind="Enabled ButtonEnabled"/>

然后:
local:MvxBind=“Enabled ButtonEnabled;TextColor MyColor”
您只需将绑定语法更改为:

 <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/Login"
    android:background="@color/yellow"
    local:MvxBind="Enabled ButtonEnabled"/>

然后:
local:MvxBind=“Enabled ButtonEnabled;TextColor MyColor”

谢谢,它已经起作用了:D.我的EmailLogin的RaiseProperty更改设置为自身(EmailLogin)。感谢您提供有关颜色的更多信息。你会如何设置颜色?是用整数RGB实例化MyColor吗?太好了!是的,您可以使用RGB实例化一种颜色,或者可以找到一些预定义的颜色,如
MvxColors.Red
。请确保您在核心和平台项目上安装了该软件包:)非常好,谢谢dude:)刚刚注意到您的xml绑定,它声明了TextColor MyColor,如果它的backgroundColor而不是TextColor,它会简单地作为local:MvxBind=“Enabled ButtonneEnabled;backgroundColor MyColor”很抱歉,这很烦人,但我是否需要在EmailLogin上调用RaisePropertyChanged中的MvxColor变量才能选择启用的按钮颜色更改?没问题!是的,您可以在setter中为您的颜色添加一个RaisePropertyChanged(不要删除ButtonEnabled的加薪,在它之后添加一个新的加薪)。谢谢,它已经起作用了:D。我的EmailLogin的RaisePropertyChange设置为自身(EmailLogin)。感谢您提供有关颜色的更多信息。你会如何设置颜色?是用整数RGB实例化MyColor吗?太好了!是的,您可以使用RGB实例化一种颜色,或者可以找到一些预定义的颜色,如
MvxColors.Red
。请确保您在核心和平台项目上安装了该软件包:)非常好,谢谢dude:)刚刚注意到您的xml绑定,它声明了TextColor MyColor,如果它的backgroundColor而不是TextColor,它会简单地作为local:MvxBind=“Enabled ButtonneEnabled;backgroundColor MyColor”很抱歉,这很烦人,但我是否需要在EmailLogin上调用RaisePropertyChanged中的MvxColor变量才能选择启用的按钮颜色更改?没问题!是的,您可以在setter中为您的颜色添加一个RaisePropertyChanged(不要删除ButtonEnabled的提升,在它之后添加一个新的提升)