Службы RIA - получение контекста данных в элементе списка

Я ищу обходной путь для моего проекта служб RIA, в котором есть Listbox с Listitems в качестве пользовательского элемента управления, определенного как ItemTemplate, например:

<ListBox x:Name="lstMain">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel Orientation="Horizontal">
           <foo:ListItemDetail />
       </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

Список привязан к доменной службе в коде программной части. Элементы списка относятся к типу ListItemDetail, который имеет редактируемые поля и кнопку «Обновить». Я хотел бы вызвать доменную службу (контекст данных родительских списков) для SaveChanges () и обновить элемент при нажатии кнопки, но нет возможности добраться до (исходной) доменной службы, которая заполняла список. Есть ли для этого элегантное решение?

Я пытаюсь использовать элемент тега Listbox для хранения контекста домена, но не могу получить к нему доступ из ListItem. Я получаю родительский StackPanel, но его родительский элемент равен нулю.

Заранее спасибо, Ра


person Ra.    schedule 09.09.2009    source источник


Ответы (1)


Вы можете создать свойство в элементе управления ListItemDetail. Затем вы можете привязать это свойство к DataContext ListBox

<ListBox x:Name="lstMain">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel Orientation="Horizontal">
           <foo:ListItemDetail MyRiaContext="{Binding DataContext, ElementName=lstMain}"/>
       </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>
person NotDan    schedule 22.10.2009