четвер, 10 квітня 2014 р.

BooleanToVisibilityConverter - перетворювач логічних значень у значення Visibility та навпаки.

Частенько при створені Windows Phone застосунку виникає потреба керувати видимістю елементів інтерфейсу. Це дуже легко реалізувати за допомогою класу

BooleanToVisibilityConverter

Зробимо невеличкий застосунок, у якому за допомогою прапорця "Видимість" ми зможемо включати/виключати зображення із написом "Привіт!"





Створюємо новий проект Windows Phone 8 із назвою "BooleanToVisibilityConverterSample".
Додаємо новий файл "BoolToVisConverter.cs" із кодом конвертеру:

public sealed class BooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
          return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed;
}

      public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
        return value is Visibility && (Visibility)value == Visibility.Visible;
        }
}

Додаємо у <!--ContentPanel--> , що знаходиться у файлі MainPage.xaml код:
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <CheckBox Name="checkBox" Content="Видимість" Grid.Row="1" IsChecked="True"/>

            <StackPanel Grid.Row="2" Orientation="Horizontal">
                <TextBlock Text="{Binding IsChecked, ElementName=checkBox,Converter={StaticResource BooleanToVisibilityConverter}}"/>
            </StackPanel>

            <StackPanel Grid.Row="3" Orientation="Vertical">
                <Image Visibility="{Binding IsChecked, ElementName=checkBox,Converter={StaticResource BooleanToVisibilityConverter}}"
                       Source="/Assets/HelloBalloon.png" />
            </StackPanel>

        </Grid>

Прописуємо ресурси:
    <phone:PhoneApplicationPage.Resources>
        <local:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    </phone:PhoneApplicationPage.Resources>

У неймспейси додаємо:
xmlns:local="clr-namespace:BooleanToVisibilityConverterSample"

Тепер запускаємо та пересвідчуємося як все працює:


Можете скористатися кодом, завантаживши готовий приклад BooleanToVisibilityConverterSample.zip.

Немає коментарів:

Дописати коментар