MVVMCross Android的按钮使
问题描述:
我是新来MVVMCross框架,Android和有如何启用/禁用按钮的麻烦。我无法在这个区域找到文档。 MVVMCross Android的按钮使
代码视图模型:
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"/>
我不知道,如果你这样做是因为你的代码不显示的一切,但你也将需要调用RaisePropertyChanged(() => ButtonEnabled);
内你的EmailLogin
属性的设置者。
此外,如果你想改变你的按钮的颜色,你可以安装official color plugin。用法是这样的:
private MvxColor _myColor;
public MvxColor MyColor
{
get
{ return _myColor; }
set
{
_myColor = value;
RaisePropertyChanged(() => MyColor);
}
}
然后:local:MvxBind="Enabled ButtonEnabled; TextColor MyColor"
谢谢你,它一直:d。我的EmailLogin的RaisePropertyChange被设置为自己(EmailLogin)。感谢有关颜色的其他信息。你会如何设定颜色?它是否使用整数RGB实例化MyColor? –
太棒了!是的,你可以使用RGB实例化一个,或者你可以找到一些预定义的颜色,比如'MvxColors.Red'。确保你的方式对你的核心和平台项目安装包:) – nmilcoff
优秀的,谢谢老兄:)只注意到你的XML绑定,它指出TEXTCOLOR MyColor,如果它的backgroundColor而不是TEXTCOLOR会是简单的地方:MvxBind = “启用ButtonEnabled; BackgroundColor MyColor” –