在Silverlight中使用Prism进行合成时,如何在模块之间附加动作?
我是否被迫使用事件系统,或者是否有办法将我的Actions的TargetName设置为另一个模块中UserControl的名称?
例如:
<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>
答案 0 :(得分:3)
使用Prism的一个好处是具有分离的应用程序,模块不了解其他模块(因此,不了解其他模块的用户控件)。因此,它们之间的某种机制必须建立模块之间的通信。
最常见的方法是使用Event Aggregator。如果要减少视图后面的代码,只需在XAML中使用命令并在ViewModel中触发事件。
以下主题涉及类似的问题:
如果有帮助,请告诉我。
达米安·申克尔曼答案 1 :(得分:-2)
我找到了解决方案 Prism4文件,
第9章:松耦合组件之间的通信