2009-11-25 16 views
0

Je crée dynamiquement ScatterView éléments à l'aide d'un modèle:ActivationHost pour ElementMenu

<s:ScatterView.ItemTemplate > 
    <DataTemplate> 
     <DockPanel LastChildFill="True" > 
      <DockPanel.Background> 
       <ImageBrush ImageSource="{Binding Type, Converter={StaticResource imgSelector}}" 
          Stretch="Fill" /> 
      </DockPanel.Background> 
      <TextBox Background="Transparent" DockPanel.Dock="Top" Text="{Binding Path=Message}" 
        IsReadOnly="True" TextWrapping="Wrap" /> 
      <s:ElementMenu Name="emBallMenu" VerticalAlignment="Top" 
          ActivationMode="HostInteraction" ActivationHost="?????"> 
       <s:ElementMenuItem Header="Send back" x:Name="emiSendBack" 
            Command="local:MainSurfaceWindow.MenuItemCommand" 
            CommandParameter="{Binding Path=BallId}"/> 
      </s:ElementMenu> 
     </DockPanel> 
    </DataTemplate> 
</s:ScatterView.ItemTemplate> 

Que dois-je mettre dans le ActivationHost du emBallMenu afin que le menu s'active sur un robinet de doigt sur le parent ScatterView.ItemTemplate?

Répondre

1

La réponse correcte est:

<s:ElementMenu Name="emBallMenu" 
    VerticalAlignment="Top" 
    ActivationMode="HostInteraction" 
    ActivationHost="{Binding RelativeSource=RelativeSource FindAncestor, 
        AncestorType={x:Type s:ScatterViewItem}}}" 
/> 

J'ai trouvé dans here