2009-09-20 8 views
1

Lors de l'utilisation de Prism pour la composition dans Silverlight, comment associer des actions entre des modules?Silverlight Action et Prisme

Est-ce que je suis obligé d'utiliser le système d'événements ou existe-t-il un moyen de définir le TargetName pour mes actions sur le nom d'un UserControl dans un module différent?

Par exemple:

<Image Height="40" HorizontalAlignment="Right" VerticalAlignment="Bottom" Width="40" Source="/SilverlightDemo.MainToolbar;Component/Images/i_chart.png" Stretch="Fill" Canvas.Left="222" Canvas.Top="55"> 
       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="MouseLeftButtonDown"> 
         <Actions:ToggleCollapseAction 

          TargetName="HERE:/SilverlightDemo.Modules.TargetModule;Views/TargetModuleView" 
          CollapseHorizontal="False" 
          CollapseVertical="False"/> 
        </i:EventTrigger> 
       </i:Interaction.Triggers> 
      </Image> 

Répondre

3

Comme l'un des avantages de l'utilisation Prism est d'avoir des applications découplées, le module ne sont pas au courant d'autres modules (donc, il n'y a pas de connaissance sur les contrôles utilisateur d'un autre module). Par conséquent, une sorte de mécanisme entre eux doit établir la communication entre les modules.

La manière la plus courante de procéder est d'utiliser Event Aggregator. Si vous souhaitez réduire le code derrière vos vues, utilisez simplement une commande dans XAML et déclenchez des événements dans le ViewModel.

Les fils suivants traitent des questions similaires:

S'il vous plaît laissez-moi savoir si cela aide .

Damian Schenkelman

http://blogs.southworks.net/dschenkelman

-2

J'ai trouvé la solution dans Documents PRISM4,

Chapitre 9: La communication entre les composants Librement Coupled

+0

Que dit le chapitre sur cette question? – ajacian81