MVVMCross Android 按钮启用
MVVMCross Android button enable
我是 Android 的 MVVMCross 框架的新手,在如何 enable/disable 按钮方面遇到了问题。我找不到有关该区域的文档。
代码视图模型:
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"/>
我不知道你是否这样做,因为你的代码没有显示所有内容,但你还需要在 EmailLogin
的 setter 中调用 RaisePropertyChanged(() => ButtonEnabled);
属性.
此外,如果您想更改按钮的颜色,可以安装 official color plugin。用法是这样的:
private MvxColor _myColor;
public MvxColor MyColor
{
get
{ return _myColor; }
set
{
_myColor = value;
RaisePropertyChanged(() => MyColor);
}
}
然后:local:MvxBind="Enabled ButtonEnabled; TextColor MyColor"
我是 Android 的 MVVMCross 框架的新手,在如何 enable/disable 按钮方面遇到了问题。我找不到有关该区域的文档。
代码视图模型:
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"/>
我不知道你是否这样做,因为你的代码没有显示所有内容,但你还需要在 EmailLogin
的 setter 中调用 RaisePropertyChanged(() => ButtonEnabled);
属性.
此外,如果您想更改按钮的颜色,可以安装 official color plugin。用法是这样的:
private MvxColor _myColor;
public MvxColor MyColor
{
get
{ return _myColor; }
set
{
_myColor = value;
RaisePropertyChanged(() => MyColor);
}
}
然后:local:MvxBind="Enabled ButtonEnabled; TextColor MyColor"