У меня есть список, который отображает кучу изображений в стиле gridview, мой код:
<controls:PanoramaItem x:Name="Pano_Photos" Header="photos">
<ListBox x:Name="lstMemoriesPhoto" ItemsSource="{Binding MemoryList}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged" x:Name="ListPhotoSelectionChangedEventTrigger">
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding NavigateToDetailPage}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel ItemWidth="130" ItemHeight="130" Visibility="{Binding MemoryPhoto,Converter={StaticResource PhotoConverter}}"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding MemoryPhoto,Converter={StaticResource ByteImageConverter}}" Margin="5"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</controls:PanoramaItem>
PhotoConverter проверяет переменную MemoryPhoto и возвращает Visibility.Visible или Collapse в зависимости от того, является ли переменная MemoryPhotoявляется нулевым или нет.Вот код для PhotoConverter:
public class PhotoConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
try
{
if ((value is byte[]) && (value != null))
{
return Visibility.Visible;
}
return Visibility.Collapsed;
}
catch (Exception ex)
{
throw ex;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Но когда я запускаю свое приложение, я получаю этот результат, .Вторая сетка должна быть невидимой, потому что она содержит нулевую переменную изображения.
Кто-нибудь знает, как отключить отдельный элемент в обертке?Большое спасибо
Редактировать Я думаю, что нашел решение для моей проблемы, определяя ширину и высоту в управлении изображением, а не в обертке, код:
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding MemoryPhoto,Converter={StaticResource ByteImageConverter}}" Margin="5" Visibility="{Binding MemoryPhoto,Converter={StaticResource PhotoConverter}}" width="130" height="130"/>
</DataTemplate>
</ListBox.ItemTemplate>