如果绑定为空,我该如何将按钮的默认可见性设置为 false 在 Xamarin 中?

3

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

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


整个绑定上下文都将为空? - Matt Soucoup
是的,如果上下文本身为null。 - Mason11987
1个回答

6

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时,按钮就会显示出来。当然,您可以将它用于任何类型的属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接