在我的 Android 应用程序中,如果没有找到搜索结果,我想显示一条消息。当视图模型的 IsBusy 属性为 false 且 HasResults 属性为 false 时会发生这种情况
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No results"
local:MvxBind="Visibility (IsBusy==false) && (HasResults==false),Converter=Visibility" />
以下是可见性转换器的外观:
public class VisibilityValueConverter : IMvxValueConverter
{
#region IMvxValueConverter implementation
object IMvxValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is bool)
{
return (bool)value == true ? (ViewStates)ViewStates.Visible : ViewStates.Gone;
}
else if (value is ViewStates)
{
return value;
}
else
{
return value != null ? (ViewStates)ViewStates.Visible : ViewStates.Gone;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
#endregion
}
我不明白为什么 VisibilityValueConverter 会收到 Android 的 ViewStates 类型的值。
这就是为什么我必须对 ViewState 类型进行测试,否则我看到的是没有它绑定将无法正常工作。
转换器不应该只接收布尔值吗?不应该是表达式 '(IsBusy==false) && (HasResults==false)' 的结果吗?
也许我在这里做错了什么?