如果 Xamarin 中的绑定为 null,我如何将按钮的可见性默认为 false

Mas*_*987 3 xaml binding xamarin.forms

显然,在 Xamarin 表单中没有使用 FallbackValue 或 TargetNullValue 的选项,我如何使用转换器来完成任务?

如果数据绑定对象为空,我希望将可见性默认为空。

Rog*_*anc 6

空转换器.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;
    }
}
Run Code Online (Sandbox Code Playgroud)

XAML

<Entry Text="{Binding WhateverProperty}" />
<Button IsVisible="{Binding WhateverProperty, Converter={local:NullConverter IsNullValue=False, IsNotNullValue=True}}" />
Run Code Online (Sandbox Code Playgroud)

对于我的测试,WhateverProperty是一个最初设置为 null 的字符串,每当我更新 时Entry,就会显示该按钮。当然,您可以将它与任何类型的属性一起使用。