--- 1-я попытка, игнорировать до "2-й попытки" ---
Не помещайте элементы управления изображения в словарь ресурсов.
Если у вас есть фиксированное количество изображений, поместите их прямо в окно.
E.g.:
<Window>
<StackPanel>
<Image Source="{Binding Path=Image1}" />
<Image Source="{Binding Path=Image2}" />
</StackPanel>
</Window>
Затем настройте класс со свойствами Image1 и Image2, отображающими изображения, поступающие из вашей БД, и установите инициализированный экземпляр этого класса в качестве DataContext вашего окна.
Более реалистично, у вас есть переменное количество изображений. XAML становится:
<Window>
<ItemsControl ItemsSource="{Binding Path=Components}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Path=Photo}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl>
</Window>
И установить DataContext для экземпляра ComponentsList.
В словаре ресурсов вы можете поместить шаблон элемента.
--- конец 1-й попытки ---
2-я попытка:
После обмена нашими комментариями возникает ситуация, когда в словаре ресурсов определен шаблон, который вы хотите изменить во время выполнения.
Необходимо дождаться, чтобы шаблон был применен к вашему элементу управления размещением изображений. Это похоже на класс Toolbox. Я не могу найти его в документах MSDN, поэтому он выглядит нестандартно, что хорошо, так как есть метод OnApplyTemplate, где вы получаете эту информацию. Если вы не можете изменить этот класс, вы можете вызвать ApplyTemplate (), чтобы убедиться, что шаблон на месте.
Теперь вы можете использовать VisualTreeHelper.GetChild для просмотра дочерних элементов управления в шаблоне, чтобы найти интересующие изображения. В примере шаблона изображения не имеют атрибута имени. Если вы не можете добавить ни одного, вам нужно разработать стратегию их распознавания, либо по порядку, либо по некоторым другим атрибутам, таким как подсказка.
Как только изображение найдено, вы можете установить его свойства по своему усмотрению.