Скрытие изображения в шаблоне списка данных в WP7 - PullRequest
0 голосов
/ 26 декабря 2011

Пожалуйста, помогите мне, я новичок в разработке WP7. У меня есть такой класс в коде позади страницы (.xaml.cs):

public class NullVisibilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return value == null ? Visibility.Collapsed : Visibility.Visible;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            Visibility? v = value as Visibility?;
            return ((v.HasValue) || (v.Value == Visibility.Collapsed)) ? null : "";
        }
    }

У меня .xaml файл такой:

<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" x:Name="lstImages" HorizontalAlignment="Center" ItemsSource="ImageList" Padding="0" Margin="0" BorderThickness="0"  >
                                        <ListBox.ItemTemplate>
                                            <DataTemplate>
<Image x:Name="imgSe" Visibility="{Binding Default, Converter={StaticResource NullVisibilityConverter}}" Height="50" Source="../Assets/g1.png"></Image>
 </DataTemplate>
                                        </ListBox.ItemTemplate>
                                    </ListBox>

По умолчанию это класс в ImageList (IList), поэтому, если по умолчанию установлено значение Null, тогда я должен скрыть изображение, а если по умолчанию не равно NULL, то я должен показать это изображение. Я пробовал приведенный выше код, но мое приложение падает. Я получаю предупреждение, поскольку "ресурс NullVisibilityConverter не может быть разрешен" на странице .xaml .

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 26 декабря 2011

Вам необходимо создать экземпляр вашего конвертера значений в ресурсах вашей страницы следующим образом.Обратите внимание, использование xmlns, которое отображает ваше пространство имен C # в пространство имен XML:

<phone:PhoneApplicationPage 
   xmlns:conv="clr-namespace:ConverterNamespace"
   ...
   >

    <phone:PhoneApplicationPage.Resources>
        <conv:NullVisibilityConverter x:Key="VisibilityConverter"/>
    </phone:PhoneApplicationPage.Resources>
  ...
</phone:PhoneApplicationPage>

Теперь сделайте ссылку на него следующим образом, обратите внимание на префикс conv, определенный выше:

<Image x:Name="imgSe" Visibility="{Binding Default, Converter={StaticResource VisibilityConverter}}" />
0 голосов
/ 26 декабря 2011

Используйте это:

xmlns: conv = "clr-namespace: пространство имен класса NullVisibilityConverter"

затем добавьте как показано ниже:

<phone:PhoneApplicationPage.Resources>
        <conv:NullVisibilityConverter x:Key="VisibilityConverter"/>
    </phone:PhoneApplicationPage.Resources>

Тогда ваш тег изображения:

<Image x:Name="imgSe" Visibility="{Binding Default, Converter={StaticResource VisibilityConverter}}" Height="50" Source="../Assets/se.png"></Image>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...