2009-09-09 51 views
0

我在尋找我的RIA Services項目,具有與listItems中爲用戶控件定義爲一個ItemTemplate一個列表框,這樣的解決方法:RIA服務 - 獲取DataContext的列表項

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

列表框在代碼隱藏中綁定到域服務。 列表項是ListItemDetail類型,它具有可編輯的字段和一個Update按鈕。 我想調用SaveChanges()的域服務(父列表的數據上下文)並點擊按鈕時更新該項目,但無法到達填充列表的(原始)域服務。 這是否有一個優雅的解決方案?

我想使用Listbox標記項來存儲域上下文,但我無法從ListItem中獲取它。我得到父級StackPanel,但它的父級爲空。

由於提前, 鐳

回答

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>