Установить свойство IsVisible строковым значением модели

Я использую XAML для определения ListView, с несколькими кнопками для каждой ячейки. Я хочу, чтобы вызвать видимость в зависимости от того, пустое значение строки или нет. Моя кнопка внутри ListView:

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

переплет Phone читается из моей модели. Это правильно показано.

Как можно установить IsVisible кнопка свойства, если Phoneзначение пустая строка?

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>
Другие вопросы по тегам