我按照此处的说明将我的视图模型验证绑定到输入表单。 使用 MVVMCross 绑定错误消息
我现在遇到的问题是,由于验证元素,表单上有很多额外的间距。如何让这些间距问题消失?由于每个字段都没有属性,因此使用可见性转换器有点困难。Android 和 iOS 也有同样的问题。我想也许是某种自定义可见性转换器?
我按照此处的说明将我的视图模型验证绑定到输入表单。 使用 MVVMCross 绑定错误消息
我现在遇到的问题是,由于验证元素,表单上有很多额外的间距。如何让这些间距问题消失?由于每个字段都没有属性,因此使用可见性转换器有点困难。Android 和 iOS 也有同样的问题。我想也许是某种自定义可见性转换器?
我认为快速修复可能是使用类似的绑定Visible Errors['Email']
- 但是,您报告它不起作用(因此将其转移到https://github.com/MvvmCross/MvvmCross/issues/494 - 谢谢)
由于这不能直接工作,那么您应该能够Visible
使用类似(在 Android 中)的方式绑定布尔属性:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#ff0000"
android:text="My error text"
local:MvxBind="Visible ErrorExists(Errors['Email'],FallbackValue=null)"
/>
哪里ErrorExists
是:
public class ErrorExistsValueConverter : MvxValueConverter
{
public override object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (value != null);
}
}
对于 iOS,如果您正在显示/隐藏 UIViews,那么您需要确保您的 UI 布局自动更新 - 例如使用约束
作为一种替代的 UI 技术,您还应该能够对 EditText 的背景颜色使用绑定 - 类似于https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/ValueConversion/ValueConversion 中的颜色绑定。 UI.Droid/Resources/Layout/View_Colors.axml