1

我按照此处的说明将我的视图模型验证绑定到输入表单。 使用 MVVMCross 绑定错误消息

我现在遇到的问题是,由于验证元素,表单上有很多额外的间距。如何让这些间距问题消失?由于每个字段都没有属性,因此使用可见性转换器有点困难。Android 和 iOS 也有同样的问题。我想也许是某种自定义可见性转换器?

4

1 回答 1

4

我认为快速修复可能是使用类似的绑定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

于 2013-11-14T17:25:15.577 回答