powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / отловить нажатие кнопки в сложном контроле
5 сообщений из 5, страница 1 из 1
отловить нажатие кнопки в сложном контроле
    #37766694
mega button
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На UserControl делаю ListBox. Каждый элемент ListBox - кнопка с подписью и картинкой:
Код: 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.
48.
49.
50.
51.
<UserControl x:Class="Desktop.ProducerControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:Desktop"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">


    <UserControl.Resources>
        <local:ImagePathConverter x:Key="ImagePathConverter"></local:ImagePathConverter>

        <DataTemplate x:Key="ItemTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="SingleWidthColumn"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Grid.Style>
                    <Style>
                        <Setter Property="TextBlock.Foreground" Value="Black"></Setter>
                    </Style>
                </Grid.Style>
                <Border Margin="5" BorderThickness="0"
                     CornerRadius="4">
                    <Button  Background="White" FontWeight="Bold" FontSize="12" FontFamily="Tahoma"  Command="{Binding Path=TestCommand}">
                    <StackPanel Margin="3" Name="stack">
                        <TextBlock Text="{Binding Path=Name}" HorizontalAlignment="Center"></TextBlock>
                        <Image Source="{Binding Path=ImageName, Converter={StaticResource ImagePathConverter}}"
                     Height ="70" Width="100"
                     ></Image>
                    </StackPanel>
                        </Button>
                </Border>
            </Grid>
        </DataTemplate>
    </UserControl.Resources>
    
    <Grid>
        <ListBox Grid.IsSharedSizeScope="True" Grid.Row="1" Margin="3" Name="lstProducers" ItemTemplate="{StaticResource ItemTemplate}"
             ScrollViewer.HorizontalScrollBarVisibility="Disabled" SnapsToDevicePixels="True" 
                 ItemsSource="{Binding Producers}" BorderThickness="0" IsSynchronizedWithCurrentItem="True"
                 SelectedItem="{Binding Path=CurrentItem, Mode=TwoWay}">
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel></WrapPanel>
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
        </ListBox>
    </Grid>
</UserControl>

Очень нужно по клику на кнопочку узнать ее подпись. Как сделать? Пробую делать через Command, но пока без результата - команда вообще не срабытывает при нажатии. Как быть?
...
Рейтинг: 0 / 0
отловить нажатие кнопки в сложном контроле
    #37766873
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mega button,

где обработчик то событий?
...
Рейтинг: 0 / 0
отловить нажатие кнопки в сложном контроле
    #37766876
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Command="{Binding Path=TestCommand}" - с помощью RelativeSource или ElementName делай привязку к нужном контролу, у которого DataContext - твой ViewModel, а CommandParameter="{Binding Self}"
...
Рейтинг: 0 / 0
отловить нажатие кнопки в сложном контроле
    #37767657
mega button
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiK,

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

пробовал из обработчика обращаться к свойству SelectedItem у списка, но получилось, что при нажатии кнопки, SelectedItem не меняется.
...
Рейтинг: 0 / 0
отловить нажатие кнопки в сложном контроле
    #37767779
mega button
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa,

чуть подробнее, если можно.
у меня список из кнопок, на каждой кнопке - текстовое поле и картинка.
когда пользователь щелкает по кнопке, то CurrentItem у списка не меняется.

общая задача - передать ViewModel выбор пользователя (скажем, текст из текстового поля на кнопке) или, лучше всего, если можно, как-то задать название кнопки и по щелчку передавать его. но пока не смог задать кнопкам из списка названия
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / отловить нажатие кнопки в сложном контроле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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