powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / RelativeSource не срабатывает
12 сообщений из 12, страница 1 из 1
RelativeSource не срабатывает
    #38214162
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня!
У 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
RelativeSource не срабатывает
    #38216722
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nicky_N,

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

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

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

спасибо, классная вещь, уже пробую!
...
Рейтинг: 0 / 0
RelativeSource не срабатывает
    #38217235
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описанную в топике проблему я решил с помощью 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
RelativeSource не срабатывает
    #38218096
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nicky_N,
...
Рейтинг: 0 / 0
RelativeSource не срабатывает
    #38218457
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic,

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

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

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

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

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


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