在我的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)&amp;&amp; (HasResults == false)'?
也许我在这里做错了什么?