Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF Доступ к свойствам одного элемента из другого / 3 сообщений из 3, страница 1 из 1
19.10.2017, 08:50
    #39538489
Auratos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Доступ к свойствам одного элемента из другого
Добрый день. Разрабатываю программу для работы с изображениями. Цель - добавить следующий функционал:
1. загрузка изображений из выбранной директории в коллекцию
2. при отображении под каждой картинкой отображается имя файла и две кнопки (элемент Image) "-" и "+"
3. при нажатии на кнопку "+" выбранный файл помещается в требуемую папку и в левом верхнем углу картинки появляется и инкрементируется некий счетчик нажатий. При нажатии на кнопку "-" происходит обратное действие (когда счетчик становится равен 0, то это поле становится невидимым).

Интерфейс у меня создается по следующему принципу:
Код: html
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.
<DataTemplate DataType="{x:Type er:Photo}">
            <Grid VerticalAlignment="Center" HorizontalAlignment="Center" Margin="6">
                <!-- Drop Shadow -->
                <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" CornerRadius="4" Background="#44000000">
                    <Border.RenderTransform>
                        <TranslateTransform X="5" Y="5" />
                    </Border.RenderTransform>
                    <Border.BitmapEffect>
                        <BlurBitmapEffect Radius="8" />
                    </Border.BitmapEffect>
                </Border>
                <!-- Image Template -->
                <Border Padding="4" Background="White" BorderBrush="#22000000" BorderThickness="1">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*" />
                            <RowDefinition Height="26" />
                        </Grid.RowDefinitions>
                        <Image Grid.Row="0" Source="{Binding Source}" Stretch="Uniform"/>
                        <Grid Name="Counter" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Visibility="Visible">
                            <Image Source="/Resources/Counter.jpg" Stretch="Uniform" Width="28" Height="28"/>
                            <Label Content="3" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="16" ></Label>
                        </Grid>
                        <Grid Grid.Row="1">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="28" />
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="28" />
                            </Grid.ColumnDefinitions>
                            <Image Grid.Column="0" Source="/Resources/Del.jpg" PreviewMouseUp="DelImageClick" Margin="0,2,0,0"/>
                            <Label Grid.Column="1" Content="{Binding FileName}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Padding="0"></Label>
                            <Image Grid.Column="2" Source="/Resources/Add.jpg" PreviewMouseUp="AddImageClick" Margin="0,2,0,0"/>
                        </Grid>
                    </Grid>
                </Border>
            </Grid>
        </DataTemplate>



1 и 2 функции я реализовал + знаю уже как работать дальше с файлом выбранного изображения, т.к. получаю полное имя выбранного изображения. Подскажите, пожалуйста, как обратиться по нажатию на Image к свойству другого элемента (делать Grid видимым/невидимым и изменять текст в элементе Label) именно в выделенном блоке? (скриншот и сам проект ниже)
...
Рейтинг: 0 / 0
19.10.2017, 08:55
    #39538492
Auratos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Доступ к свойствам одного элемента из другого
...
Рейтинг: 0 / 0
19.10.2017, 11:36
    #39538574
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF Доступ к свойствам одного элемента из другого
используйте шаблон MVVM и проблем не будет. Все картинки, папки и другими данные должны храниться в модели представления, тогда проблем описанной вами не будет.
В ваших события обработчиках в CodeBehind коде формы можно обратиться к именованному элементу как в WinForms или через метод FindName из класса FrameworkElement который наследуют практически все элементы управления
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF Доступ к свойствам одного элемента из другого / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]