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

Я пробовал использовать событие Loaded, даже LayoutUpdated, ApplyTemplate, как в руководстве по msdn, но для всех них, когда я пытался получить контейнер для Image Control, он был нулевым

    var containerItem = FeedsPanorama.ItemContainerGenerator.ContainerFromIndex(selectedIndex);

    var imageControl = VisualElementHelper.FindName<Image>("ImageThumbnail", containerItem);

    new ImageUtility().GetImageAsyn(new Uri(selectedItem.SummaryImageLink, UriKind.Absolute), imageControl);

Тот же код будет работать, когда я обрабатываю событие Selection_Changed в FeedsPanaroma.

0
vodkhang 23 Ноя 2010 в 09:07

2 ответа

Лучший ответ

Я попытался обойтись так, чтобы мне не приходилось иметь дело с загруженным событием. Я написал новый ImageConverter, чтобы использовать этот тег для замены тега Image. Работает как часы

0
vodkhang 11 Дек 2010 в 19:40

Вы пробовали событие Loaded для страницы?

1
Mick N 23 Ноя 2010 в 09:10
Пробовал, не получилось :(. Вызывается до загрузки всех элементов управления
 – 
vodkhang
23 Ноя 2010 в 09:15
1
Интересно, а событие Loaded для рассматриваемого элемента управления тоже?
 – 
Mick N
23 Ноя 2010 в 09:50
Да, а также событие Loaded для рассматриваемого элемента управления. Если вы читаете ссылку вручную, которую я публикую: «Время события Loaded в Silverlight отличается от времени события FrameworkElement.Loaded в WPF. В частности, событие WPF Loaded происходит после применения шаблона. В Silverlight событие Loaded не гарантируется, что произойдет после применения шаблона ".
 – 
vodkhang
24 Ноя 2010 в 04:15