powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Привязка
8 сообщений из 8, страница 1 из 1
Привязка
    #37780101
ButtonExt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть список ILlist<Producer> Producers, нужно по этому списку вывести набор кнопок.

Делаю свою кнопку:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class ButtonExt : Button
{
    public static DependencyProperty ProducerProperty =
        DependencyProperty.Register("Producer", typeof(Producer), typeof(ButtonExt));

    public Producer Producer
    {
        get { return (Producer)GetValue(ProducerProperty); }
        set { SetValue(ProducerProperty, value); }
    }
}


Для вью делаю такой код:
Код: 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.
<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"
             xmlns:ARP="clr-namespace:Desktop"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="500">

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

        <DataTemplate x:Key="ItemTemplate">
            <Grid  >
                <ARP:ButtonExt Producer="{Binding Path=Producer}" Margin="2" Background="White" Click="Click">
                <Border Margin="5" BorderThickness="0" BorderBrush="SteelBlue" CornerRadius="4">
                    <StackPanel Margin="3" Name="stack">
                        <TextBlock Text="{Binding Path=Name}" HorizontalAlignment="Center" FontWeight="Bold"  FontSize="13"></TextBlock>
                        <Image Source="{Binding Path=ImageName, Converter={StaticResource ImagePathConverter}, ConverterParameter='Logo'}"
                     Height ="70" Width="100"
                     ></Image>
                        </StackPanel>
                </Border>
                </ARP:ButtonExt>
            </Grid>
        </DataTemplate>
    </UserControl.Resources>
    
    <Grid>
        <Label Content="{Binding Path=Caption}" Height="28" Name="label1" VerticalAlignment="Top"
               FontSize="13" Foreground="#FF121224" Background="#2A7E7F5A" FontWeight="Bold" 
                 Margin="0,12,0,0"  HorizontalAlignment="Left"/>


        <ListBox Grid.IsSharedSizeScope="True" Margin="37,49,1,7" Name="lstProducers" ItemTemplate="{StaticResource ItemTemplate}"
             ScrollViewer.HorizontalScrollBarVisibility="Disabled" SnapsToDevicePixels="True" 
                 ItemsSource="{Binding Producers}" BorderThickness="0"
                 SelectedItem="{Binding Path=SelectedItem, Mode=TwoWay}" SelectionChanged="SelectionChanged">
            <ListBox.ItemsPanel >
                <ItemsPanelTemplate>
                    <WrapPanel></WrapPanel>
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
        </ListBox>
    </Grid>
</UserControl>


Все свойства Producer биндятся нормально, а вот сам обьект Producer на соответствующее свойство кнопки - нет.
Сейчас биндинг такой:
Код: xml
1.
<ARP:ButtonExt Producer="{Binding Path=Producer}" Margin="2" Background="White" Click="Click">


Вопрос - как правильно прибиндить сам обьект из списка на соответствуюющее свойство кнопки?
...
Рейтинг: 0 / 0
Привязка
    #37780193
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
<ARP:ButtonExt Producer="{Binding}" Margin="2" Background="White" Click="Click">



?
...
Рейтинг: 0 / 0
Привязка
    #37780200
ButtonExt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей К,

о, отлично. спасибо!
...
Рейтинг: 0 / 0
Привязка
    #37780313
ButtonExt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут еще вопрос возник в догонку.
делаю еще на всех кнопках списка команду:
Код: xml
1.
   <ARP:ButtonExt Producer="{Binding}" Margin="2" Background="White" Command="{Binding Path=ProducerSelect}">



не работает!

причем, если делаю отдельную кнопку на вью и прописываю ту же команду - работает!

в чем может быть проблема?
...
Рейтинг: 0 / 0
Привязка
    #37780361
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ButtonExt,

ну потому что привязка ищет команду в элементе списка, а не на форме.
...
Рейтинг: 0 / 0
Привязка
    #37780376
ButtonExt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lelouch,

ок, как сделать, чтобы работало и в списке кнопок?
...
Рейтинг: 0 / 0
Привязка
    #37780379
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ButtonExt,

покурить RelativeSource наверное.
...
Рейтинг: 0 / 0
Привязка
    #37780593
ButtonExt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lelouch,

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


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