Событие FlipView onItemShow

Я разрабатываю приложение для Windows 10 следующим образом:

это мой класс

public class ImgurPost
{
    public string title { get; set; }
    public Uri thumbnail { get; set; }
    public Uri fullimage { get; set; }
}

А это мой Xaml

<DataTemplate x:Name="flipItem" x:DataType="vm:ImgurPost">
   <Grid>
      <Image Source="{Binding thumbnail}"/>         
      <TextBlock Text="{Binding title}" />
   </Grid>
</DataTemplate>
<FlipView ItemTemplate="{x:Bind flipItem}">
</FlipView>

FlipView.Itemsource подключен к IncrementalSource через С# и отлично работает, отображаются все элементы.

Но я хочу, чтобы при переходе к следующему элементу я мог запустить событие, чтобы запросить загрузку полного изображения и заменить миниатюру только на этом активном FlipViewItem, поэтому когда приложение загружается, оно не загружает все полноразмерные изображения за один раз.


person Adrews    schedule 22.02.2016    source источник


Ответы (1)


Вы можете использовать событие SelectionChanged, чтобы узнать, когда пользователь меняет элемент, и добавить свою логику для изменения изображения.

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.primitives.selector.selectionchanged

Обновлять:

Есть некоторые пути к этому.

1.- вы можете использовать INotifyPropertyChanged в своей модели и изменить только значение свойства, которое содержит URL-адрес, и выполняет привязку с вашим элементом управления изображением внутри шаблона элемента

https://msdn.microsoft.com/en-us/library/windows/apps/mt269383.aspx

2.- вы можете использовать подход селектора Item Template, чтобы изменить все ItemTemplate в зависимости от некоторого значения вашей модели.

https://marcominerva.wordpress.com/2013/02/18/dynamically-choose-datatemplate-in-winrt/

предыдущий пример был для WinRT, но по-прежнему действителен для приложений UWP.

Я думаю, если вы хотите напрямую изменить значение источника изображения, это будет сложно, но возможно с помощью VisualTreeHelper.

person RicardoPons    schedule 23.02.2016
comment
Я пытаюсь использовать его, но проблема в том, что я не могу найти способ добавить или изменить элементы управления внутри контейнера selectedItem для Flipview, потому что Flipview.containerfromindex(FlipView.selecteindex) возвращает значение null, несмотря ни на что. - person Adrews; 23.02.2016
comment
Я получил это, используя подход выбора шаблона. Спасибо. - person Adrews; 24.02.2016