通过模型的字符串值设置IsVisible属性

时间:2018-10-08 07:44:03

标签: xaml xamarin xamarin.forms xamarin.forms.listview

我正在使用XAML定义一个ListView,每个单元具有多个按钮。 我想根据字符串值是否为空来触发可见性。 我在ListView中的按钮是:

<Button Text="{Binding Phone}" 
        Clicked="OnPhoneClicked"
        CommandParameter="{Binding Telefono}"
        x:Name="btnPhone" />

从我的模型中读取绑定Phone。正确显示。

如果IsVisible的值为空字符串,如何设置Phone属性按钮?

1 个答案:

答案 0 :(得分:1)

尝试此代码

<Button Text="{Binding Phone}" 
    Clicked="OnPhoneClicked"
    CommandParameter="{Binding Telefono}"
    x:Name="btnPhone"
    IsVisible="{Binding Phone,Converter={StaticResource StringNullOrEmptyBoolConverter"} />

StringNullOrEmptyBoolConverter.cs文件

public class StringNullOrEmptyBoolConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        var s = value as string;
        return !string.IsNullOrWhiteSpace(s);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

最后将其添加到App.xaml文件中

 <Application.Resources>
        <ResourceDictionary>
            <Converter:StringNullOrEmptyBoolConverter x:Key="StringNullOrEmptyBoolConverter" />
        </ResourceDictionary>
    </Application.Resources>