显然,在Xamarin表单中,没有使用FallbackValue或TargetNullValue的选项,我该如何使用转换器来实现任务?
如果数据绑定对象为null,我希望将可见性默认设置为null。
显然,在Xamarin表单中,没有使用FallbackValue或TargetNullValue的选项,我该如何使用转换器来实现任务?
如果数据绑定对象为null,我希望将可见性默认设置为null。
NullConverter.cs
public class NullConverter : IMarkupExtension, IValueConverter
{
public object IsNullValue { get; set; }
public object IsNotNullValue { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null ? IsNullValue : IsNotNullValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
public object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
XAML
<Entry Text="{Binding WhateverProperty}" />
<Button IsVisible="{Binding WhateverProperty, Converter={local:NullConverter IsNullValue=False, IsNotNullValue=True}}" />
在我的测试中,WhateverProperty
是一个最初设置为null的字符串,每当我更新Entry
时,按钮就会显示出来。当然,您可以将它用于任何类型的属性。