Я использую c # и wpf.
У меня проблема с привязкой данных.У меня есть базовый класс этой модели:
public class Media
{
public string Text {get;set;}
public List<string> Videos{get;set;}
public List<string> Images{get;set;}
}
вот мой код xaml:
<Grid Height="500" Width="380">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Text, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" TextAlignment="Center" VerticalAlignment="Center"/>
<Image Grid.Row="1" Source="{Binding Images[0], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding Converter={StaticResource imageVisibilityConverter}}"/>
<MediaElement Grid.Row="1" Source="{Binding Videos[0], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding Converter={StaticResource videoVisibilityConverter}}"/>
</Grid>
В моей модели представления списка мультимедиа некоторые из моих моделей не имеют видео и видео.ноль (или не имеет элемента).В связывающем источнике MediaElement я поставил [0] значение видео, которое вызывает исключение.
Исключение:
System.Windows.Data Error: 17 : Cannot get 'Item[]' value (type 'XXXX') from 'Videos' (type 'List`1'). BindingExpression:Path=Videos[0]; DataItem='Media' (HashCode=18855696); target element is 'MediaElement' (Name=''); target property is 'Source' (type 'Uri') ArgumentOutOfRangeException:'System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index'
Я хочу проверить, доступны ли видео, установите для Видео [0] значениеСвойство источника MediaElement, если нет, не устанавливайте для этого свойства ничего.
Любая помощь будет полезна.