Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 29.08.2019
Сообщений: 5
WPF

Не получается обратится к x:Name у Image, находящегося внутри DataTemplate

19.11.2021, 10:51. Показов 831. Ответов 1

Студворк — интернет-сервис помощи студентам
Есть вот такой ListView, необходимо загрузить картинку из базы данных, чтобы путь картинки загружался в Source у ImagePhoto:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                x:Name="LvNews"
                Grid.Row="2" VirtualizingPanel.IsVirtualizing="True"
                      Grid.ColumnSpan="3"
                Margin="20,0,10,0">
                <ListView.ItemTemplate>
                    <DataTemplate x:Name="LvNewsTemplate">
                        <Grid Height="106">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="110" />
                                <ColumnDefinition />
                                <ColumnDefinition Width="0.3*" />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="0.5*"/>
                                <RowDefinition Height="0.5*" />
                                <RowDefinition />
                                <RowDefinition Height="0.5*" />
                            </Grid.RowDefinitions>
                            <Border
                                Grid.RowSpan="4"
                                Width="110"
                                Height="106"
                                HorizontalAlignment="Center"
                                Background="#FFF3F3F3"
                                CornerRadius="10">
                                <Image x:Name="ImagePhoto" Stretch="UniformToFill">
                                    <Image.Source>
                                        <Binding>
                                            <Binding.TargetNullValue>
                                                <ImageSource>/Resources/Imagies/Icons/DefaultImage.png</ImageSource>
                                            </Binding.TargetNullValue>
                                        </Binding>
                                    </Image.Source>
                                    <Image.Clip>
                                        <RectangleGeometry
                                            RadiusX="10"
                                            RadiusY="10"
                                            Rect="0,0,110,106" />
                                    </Image.Clip>
                                </Image>
                            </Border>
                            ...
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
Как обратиться к ImagePhoto.Source, чтобы загрузить в него картинку?
Метод на получение картинки из бд и загрузки его в ImagePhoto:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private void GetImageBinaryFromDb()
        {
            
            sqlConnection.Open();
            sqlCommand = new SqlCommand($"SELECT [Photo] FROM dbo.Image" +
                $" WHERE IdImage = {Classes.AdditionalClasses.VariableClass.ClassImage.IdImage}", sqlConnection);
 
            dataReader = sqlCommand.ExecuteReader();
            while (dataReader.Read())
            {
                byte[] imageBytes = (byte[])dataReader[0];
                MemoryStream ms = new MemoryStream();
                ms.Write(imageBytes, 0, imageBytes.Length);
                ms.Seek(0, SeekOrigin.Begin);
                BitmapImage bmp = new BitmapImage();
                bmp.BeginInit();
                bmp.StreamSource = ms;
                bmp.EndInit();
                ImagePhoto.Source = bmp;
                
 
            }
            sqlConnection.Close();
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2021, 10:51
Ответы с готовыми решениями:

Не получается получить доступ к элементу внутри DataTemplate
В чем моя ошибка, подскажите пожалуйста. VisualTreeHelper.GetChildrenCount(parent) - данный метод возвращает 0. &lt;DataGrid...

Не видно картинку Image в DataTemplate из Binding
Без binding в другой колонке изображение видно, но в шаблоне изображение почему то не появляется... и через binding тоже. Наверняка...

Не работает Binding внутри DataTemplate
Привязки внутри DataTemplate не срабатывают(RemoveKernel, Title, IsVisualization), хотя если их вынести в другие элементы - они работают. Я...

1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
19.11.2021, 15:13
Цитата Сообщение от 8_Роман_8 Посмотреть сообщение
Как обратиться к ImagePhoto.Source, чтобы загрузить в него картинку?
На Шарпе это достаточно сложно.
Начинающим, вообще, не стоит использовать Шарп для работы с WPF UI элементами.
Основной язык WPF - это XAML и работать с UI элементами следует на этом языке.

На Шарпе создайте Контекст Данных.
А на XAML в шаблоне задайте привязку ImagePhoto к свойству Контекста Данных содержащему изображение.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2021, 15:13
Помогаю со студенческими работами здесь

Доступ к StaticResource внутри DataTemplate
Есть шаблон &lt;DataTemplate DataType=&quot;{x:Type staticRes:MyViewModel}&quot;&gt; &lt;Grid&gt; &lt;Grid.Resources&gt; ...

Узнать название изображения находящегося в image
Доброго времени суток. Я записываю image картинки: image1.Picture.LoadFromFile('C:\karti\pictures\r1k1.jpg'); ...

WPF - Binding ContextMenu commands внутри DataTemplate
Добрый день, пытаюсь создать TabControl с разными ContextMenu в зависимости от элемента вызова. Например при клике на пустом месте в...

Как обратится к объекту Image с созданого мной класса?
помогите пожалуйста разобраться ,......) вот создаю клас: class TKvadrat { public : void PaintK(); void Motion (); ...

Обратится к элементам внутри дива
Здравствуйте. Вопрос таков, допустим есть &lt;div id='text'&gt; &lt;div style='display:none'&gt;lala&lt;/div&gt; &lt;div...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru