Silverlight Action和Prism

时间:2009-09-20 00:53:14

标签: silverlight prism

在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>

2 个答案:

答案 0 :(得分:3)

使用Prism的一个好处是具有分离的应用程序,模块不了解其他模块(因此,不了解其他模块的用户控件)。因此,它们之间的某种机制必须建立模块之间的通信。

最常见的方法是使用Event Aggregator。如果要减少视图后面的代码,只需在XAML中使用命令并在ViewModel中触发事件。

以下主题涉及类似的问题:

如果有帮助,请告诉我。

达米安·申克尔曼

http://blogs.southworks.net/dschenkelman

答案 1 :(得分:-2)

我找到了解决方案 Prism4文件,

第9章:松耦合组件之间的通信