Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Привязка / 8 сообщений из 8, страница 1 из 1
03.05.2012, 11:28
    #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
03.05.2012, 12:18
    #37780193
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Привязка
Код: xml
1.
<ARP:ButtonExt Producer="{Binding}" Margin="2" Background="White" Click="Click">



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

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



не работает!

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

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

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

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

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

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


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