2009-06-03 2 views
0

Je ne sais pas, il y a trop de développeurs de surface ici, mais hey ho ...Ajout d'événements à ScatterViewItems lors de leur création implicitement

Si j'ai un ScatterView qui implicitement crée les objets ScatterViewItem (voir ci-dessous), est-il possible de supprimer les événements de contact pour chaque scatterViewItem? Aussi quand je enveloppe l'objet d'image dans un ScatterViewItem explicitement l'article ne fonctionne plus. Quelqu'un pourrait-il nous dire pourquoi c'est le cas?

<s:ScatterView ItemsSource="{StaticResource DummyData}" > 
    <s:ScatterView.ItemTemplate> 
     <DataTemplate> 
     <Image Source="{Binding Path=ImagePath}" /> 
     </DataTemplate> 
    </s:ScatterView.ItemTemplate> 
</s:ScatterView> 

Répondre

3

Emballage l'image dans un scatterviewitem à l'intérieur du DataTemplate ne va pas aider parce que le ScatterView va encore générer et l'envelopper avec une autre scatterviewitem aussi longtemps que vous utilisez ItemsSource. La seule façon d'empêcher cela serait de créer explicitement et d'ajouter des svi à la collection d'items sur le scatterview dans le code, mais cela renoncerait aux avantages de la liaison de données.

Pour arriver à votre question initiale, je suppose que vous voulez savoir quand un événement ContactDown ou ContactUp se produit sur n'importe quel scatterviewitem généré? Comme ce sont des événements routés, vous pouvez simplement vous abonner au niveau scatterview.

<s:ScatterView ItemsSource="{StaticResource DummyData}" 
       s:ScatterViewItem.ContactDown="OnSVIContactDown"> 
    <s:ScatterView.ItemTemplate>  
     <DataTemplate>   
      <Image Source="{Binding Path=ImagePath}" />  
     </DataTemplate> 
    </s:ScatterView.ItemTemplate> 
    </s:ScatterView> 
+0

Bien sûr. Santé mec. –

+0

+1 pour la question et l'exemple de code – gyurisc

Questions connexes