Установить свойство IsVisible строковым значением модели - PullRequest
0 голосов
/ 08 октября 2018

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

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

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

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

1 Ответ

0 голосов
/ 08 октября 2018

Попробуйте этот код

<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>
...