Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / отловить нажатие кнопки в сложном контроле / 5 сообщений из 5, страница 1 из 1
23.04.2012, 17:10
    #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
23.04.2012, 18:33
    #37766873
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отловить нажатие кнопки в сложном контроле
mega button,

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

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

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

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

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


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