Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / RelativeSource не срабатывает / 12 сообщений из 12, страница 1 из 1
05.04.2013, 12:04
    #38214162
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
Всем доброго дня!
У Customer(CustomerID, Name) есть Accounts (AccountID, CustomerID). Есть такая хотелка для отображения: Customer'ы отображаются в ListBox, каждая строка - панель с именем и ContentPresenter - списком Accounts (ContentPresenter отображается, если пользователь кликнул по строке ListBox), в ContentPresenter - опять же ListBox со списком Accounts в виде RadioButtons.
пользователь кликает по Customers, у каждого Customer вываливается список Accounts, где выбирается какой-либо один Account. Залача: узнать какой Account - текущий. попробовал так:
Код: 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.
<ContentPresenter.Content>
                        <ListBox ItemsSource="{Binding Accounts}" SelectedItem="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, 
                                                                                         Path=DataContext.SelectedAccount}">
                            <ListBox.Style>
                                <Style TargetType="ListBox">
                                    <Setter Property="ItemContainerStyle">
                                        <Setter.Value>
                                            <Style TargetType="ListBoxItem">
                                                <Setter Property="Margin" Value="2" />
                                                <Setter Property="Template">
                                                    <Setter.Value>
                                                        <ControlTemplate TargetType="ListBoxItem">
                                                            <RadioButton Focusable="False" Content="{Binding Path=AccountID}" 
                                                                         IsChecked="{Binding Path=IsSelected, Mode=TwoWay, 
                                                                                             RelativeSource={RelativeSource TemplatedParent}}"/>
                                                        </ControlTemplate>
                                                    </Setter.Value>
                                                </Setter>
                                            </Style>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </ListBox.Style>
                        </ListBox>
                    </ContentPresenter.Content>


но выдает ошибку System.Windows.Data Error: 4 : Cannot find source for binding with reference.

ПРОЕКТ в АТТАЧЕ.
...
Рейтинг: 0 / 0
08.04.2013, 10:58
    #38216722
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
Nicky_N,

У вас проект не билдится без содержимого папки Properties.

Что касается RelativeSource, то фиг его знает. В монстроидальных конструкциях тяжело разбираться, и с ui я плотно не работал.
...
Рейтинг: 0 / 0
08.04.2013, 12:14
    #38216898
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
тебе snoop поможет
...
Рейтинг: 0 / 0
08.04.2013, 14:15
    #38217201
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
enigmatic,

попробовал на другой машине VS2010 - все ок.
...
Рейтинг: 0 / 0
08.04.2013, 14:15
    #38217202
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
AlexeiK,

спасибо, классная вещь, уже пробую!
...
Рейтинг: 0 / 0
08.04.2013, 14:26
    #38217235
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
Описанную в топике проблему я решил с помощью MVVM. Если интересно - выложу проект.
Столкнулся с другим вопросом.
Код: 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.
  <ListBox ItemsSource="{Binding Customers}" 
                 ItemTemplate="{StaticResource CustomerItemTemplate}"/>

***
<DataTemplate x:Key="CustomerItemTemplate">
                    <StackPanel Margin="3">

                        <TextBlock Text="{Binding Path=Name}" />

                        <ContentPresenter HorizontalAlignment="Left">
                                                           
                            <ContentPresenter.Content>
                                <ListBox ItemsSource="{Binding Accounts}" SelectedItem="{Binding Path=SelectedAccount, Mode=TwoWay}">
                                    <ListBox.Style>
                                        <Style TargetType="ListBox">
                                            <Setter Property="ItemContainerStyle">
                                                <Setter.Value>
                                                    <Style TargetType="ListBoxItem">
                                                        <Setter Property="Template">
                                                            <Setter.Value>
                                                                <ControlTemplate TargetType="ListBoxItem">
                                                                    <RadioButton Focusable="False" Content="{Binding Path=AccountID}" 
                                                                                 IsChecked="{Binding Path=IsSelected, Mode=TwoWay, 
                                                                                             RelativeSource={RelativeSource TemplatedParent}}"/>
                                                                </ControlTemplate>
                                                            </Setter.Value>
                                                        </Setter>
                                                    </Style>
                                                </Setter.Value>
                                            </Setter>
                                        </Style>
                                    </ListBox.Style>
                                </ListBox>
                            </ContentPresenter.Content>

                        </ContentPresenter>
                    </StackPanel>
        </DataTemplate>


Как сделать, чтобы в строка ListBox в ContentPresenter'е имела такую же ширину к и в основном ListBox? Что-то я уже совсем запутался с этими RelativeSource и TemplatedParent.
...
Рейтинг: 0 / 0
09.04.2013, 06:52
    #38218096
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
Nicky_N,
...
Рейтинг: 0 / 0
09.04.2013, 11:33
    #38218457
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
enigmatic,

Попробовал на третьей машине - все ок, мистика?))
...
Рейтинг: 0 / 0
09.04.2013, 11:51
    #38218507
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
Nicky_N,

В архиве с проектом нет этих файлов, а в солюшене записи о них остались. Без зачистки солюшена от этих записях проект не скомпиляется.
...
Рейтинг: 0 / 0
09.04.2013, 12:22
    #38218584
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
enigmatic,

вот специально скачал архив, распаковал, зашел в папку Properties и увидел эти файлы)
...
Рейтинг: 0 / 0
09.04.2013, 12:48
    #38218630
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
Nicky_N,

Действительно. Значит я не всё распаковал просто.
Прошу прощения за беспокойство
...
Рейтинг: 0 / 0
09.04.2013, 12:55
    #38218638
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RelativeSource не срабатывает
enigmatic,

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


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