RIA Services - получение DataContext в элементе списка - PullRequest
0 голосов
/ 09 сентября 2009

Я ищу обходной путь для моего проекта RIA Services, который имеет 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, но его родитель имеет значение null.

Спасибо заранее, Ra

1 Ответ

1 голос
/ 22 октября 2009

Вы можете создать свойство в элементе управления 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>
...