Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Binding в XAML


Автор: DenWPF 22.5.2011, 12:16
У меня две таблицы Табл1(id,title) Табл2(id,title,id_Табл1)

1.К первой я делаю связь с 1 таблицей.
2.Ко второй я делаю через отлов нажатие на первой таблице и тогда достаю нужны данные и связываю их со 2 гридом.

Как сделать 2 пункт через xaml что бы не нужно было отлавливать нажатие?

Автор: -Mikle- 22.5.2011, 12:43
Ты используешь DataSet'ы? Или бизнес-объекты?

Автор: DenWPF 22.5.2011, 13:59
entity framework использую

Автор: -Mikle- 22.5.2011, 20:44
Если привязываешь сами сущности, то там же для сущности Табл1, должно быть свойство содержащее коллекцию связанных сущностей Табл2. Вот их и привязывай.

Автор: DenWPF 22.5.2011, 21:14
Цитата(-Mikle- @ 22.5.2011,  20:44)
Если привязываешь сами сущности, то там же для сущности Табл1, должно быть свойство содержащее коллекцию связанных сущностей Табл2. Вот их и привязывай.

ООО вот что нужно, сейчас попробую

правда я ещё не понимаю как это сделать.


Код

m_context.Load(m_context.GetGroupQuery());
m_context.Load(m_context.GetDishQuery());
this.dataGridGroup.ItemsSource = m_context.Groups;

вот так я бинд делаю.

Автор: -Mikle- 22.5.2011, 23:23
эм... даж не знаю как сказать... ну типа этого имел ввиду:
Код

<ListBox x:Name="listBoxMaster" ItemsSource="{Binding SomeMasterItems}" />
<ListBox ItemsSource="{Binding Path=SelectedItem.Groups, ElementName=listBoxMaster}" />

А если требуется предварительно загрузить, то можно сделать конвертер, в котором и вызвать загрузку.
Код

<ListBox x:Name="listBoxMaster" ItemsSource="{Binding SomeMasterItems}" />
<ListBox ItemsSource="{Binding Path=SelectedItem, ElementName=listBoxMaster, Converter={StaticResource loadAndGetGroupsConverter}}" />

Ну, в общем, как идея это. Я бы все равно без MVVM не обошелся.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)