У меня есть длинный список, и у меня есть шаблон данных в качестве шаблона элемента, содержащий изображение. Я хочу, чтобы источник изменялся на основе свойства модели. Я попытался с конвертером, но я не мог заставить его работать.ChangePropertyAction для управления изображением в шаблоне элемента LongListSelector
Теперь я пытаюсь использовать триггеры. У меня есть:
<Image Name="MovieThumbnail">
<i:Interaction.Triggers>
<ei:DataTrigger Binding="{Binding DataContext.IsCategoryCurrent,ElementName=LayoutRoot}" Value="true">
<ei:ChangePropertyAction TargetObject="{Binding ElementName=MovieThumbnail}" TargetName="Source" Value="{Binding Path=Image120x170}" PropertyName="Source"/>
</ei:DataTrigger>
<ei:DataTrigger Binding="{Binding DataContext.IsCategoryCurrent,ElementName=LayoutRoot}" Value="false">
<ei:ChangePropertyAction TargetObject="{Binding ElementName=MovieThumbnail}" TargetName="Source" Value="{x:Null}" PropertyName="Source"/>
</ei:DataTrigger>
</i:Interaction.Triggers>
</Image>
Это работает почти так, как я хочу, за исключением того, что изображения повторяются. Как в фильме есть фотография другого фильма. Я думаю, что это потому, что я привязываюсь по имени элемента, а элемент управления изображением имеет несколько экземпляров (по одному для каждого элемента), но я думаю, что они не могут видеть друг друга. Любая помощь высоко ценится.
EDIT:
После дальнейших исследований, кажется, что это происходит из-за большого выбора списка.
Сначала я загружаю 40 предметов, а затем загружаю еще 40, но вторая партия из 40 предметов получает фотографии из первой партии. Если я создаю событие с измененным свойством, то снимки из второй партии устанавливаются на все элементы, повторяющиеся. Я понятия не имею, почему это происходит.
Если я загружаю еще 40 и снова увеличиваю свойство, измененное на IsCategoryCurrent, изображения из 3-й партии получаются три раза.