使用Prism 4时我遇到了未知问题。我们在MVVM模式中实现业务解决方案。为此,我使用了
1. Microsoft.Expression.Interactions
2. System.Windows.Interactivity
3. GalaSoft.MvvmLight.Extras.WPF4
用于Interaction.Triggers,CallMethodAction和EventToCommand。
<SWI:Interaction.Triggers>
<SWI:EventTrigger SourceObject="{Binding ElementName=txtName}" EventName="GotFocus">
<MEI:CallMethodAction TargetObject="{Binding Path=DataContext,ElementName=txtName}" MethodName="txtName_GotFocus"></MEI:CallMethodAction>
</SWI:EventTrigger>
<SWI:EventTrigger SourceObject="{Binding ElementName=txtName}" EventName="KeyUp">
<GMEWCMD:EventToCommand Command="{Binding Path=DataContext.cmdtxtNameKeyUpEvent,ElementName=txtName}" PassEventArgsToCommand="True">
</GMEWCMD:EventToCommand>
</SWI:EventTrigger>
</SWI:Interaction.Triggers>
一切都运转良好但现在我们要求整个系统松散耦合我们选择棱镜4.我们已经实现了这个但是上面的代码创建了以下问题。
无法加载文件或程序集“Microsoft.Expression.Interactions,PublicKeyToken = 31bf3856ad364e35”或其中一个依赖项。系统找不到指定的文件。
如果我评论上面的代码一切正常。我不知道是什么问题。 PRISM 4不支持上面的程序集吗?
请帮助我们摆脱这个问题。
谢谢
答案 0 :(得分:13)
当我在属于模块的视图中引用Microsoft.Expression.Interactions和System.Windows.Interactivity时,这种情况经常发生在我身上,但我也无法将这些引用添加到充当shell的项目中。 / p>
答案 1 :(得分:1)
我在Visual Studio 2012中遇到了与Prism类似的问题.XAML编辑器会因同样的异常而失败。
解决方案是安装Microsoft Expression Blend SDK。程序集应该是SDK的一部分。据称,在XAML中控制事件和命令之间的绑定是必要的,而某些代码可能需要它。
答案 2 :(得分:1)
我在使用.NET 4.5.2的Prism 6.1复合应用程序中遇到了同样的问题,我在其中一个模块(类库)中引用了Microsoft.Expression.Interactions&amp; System.Windows.Interactivity。 最终我必须在Desktop项目中引用相同的dll(引导程序和Shell所属的那些)