0

我正在为我的 RIA 服务项目寻找一种解决方法,该项目有一个列表框,其中 Listitems 作为定义为 ItemTemplate 的用户控件,如下所示:

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

列表框在代码隐藏中绑定到域服务。列表项的类型为 ListItemDetail,它具有可编辑字段和更新按钮。我想将域服务(父列表的数据上下文)调用到 SaveChanges() 并在单击按钮时更新项目,但是无法访问填充列表的(原始)域服务。有没有一个优雅的解决方案?

我正在尝试使用 Listbox 标记项来存储域上下文,但我无法从 ListItem 中获取它。我得到了父 StackPanel,但它的父为空。

在此先感谢,拉

4

1 回答 1

1

您可以在 ListItemDetail 控件上创建一个属性。然后你可以将该属性绑定到 ListBox 的 DataContext

<ListBox x:Name="lstMain">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel Orientation="Horizontal">
           <foo:ListItemDetail MyRiaContext="{Binding DataContext, ElementName=lstMain}"/>
       </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>
于 2009-10-22T03:36:56.733 回答