0

次のように、ItemTemplate として定義されたユーザー コントロールとして Listitems を持つ Listbox を持つ RIA Services プロジェクトの回避策を探しています。

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

Listbox はコード ビハインドでドメイン サービスにバインドされます。リスト アイテムは、編集可能なフィールドと [更新] ボタンを持つ ListItemDetail タイプです。ドメイン サービス (親リストのデータ コンテキスト) を SaveChanges() に呼び出して、ボタンがクリックされたときに項目を更新したいのですが、リストに入力された (元の) ドメイン サービスにアクセスする方法がありません。これに対するエレガントな解決策はありますか?

Listbox タグ項目を使用してドメイン コンテキストを保存しようとしていますが、ListItem から取得できません。親 StackPanel を取得しますが、その親は null です。

前もってありがとう、ラー

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 に答える