名称"交互"在名称空间"http://schemas.microsoft.com/expression/2010/interactivity"中不存在

Pit*_*k76 35 c# wpf visual-studio

我在几个项目中使用了System.Windows.Interactivity DLL而没有任何问题.现在在我的最新项目中,我无法让它发挥作用.我总是得到以下错误:

名称"交互"在名称空间" http://schemas.microsoft.com/expression/2010/interactivity " 中不存在.

<i:Interaction.Triggers>
    <EventTrigger EventName="SelectionChanged">
        <i:InvokeCommandAction Command="{Binding AddSelectLocomotifCommand}"
            CommandParameter="{Binding SelectedItem, ElementName=listBoxLocs}" />
    </EventTrigger>
</i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)

名称空间:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
Run Code Online (Sandbox Code Playgroud)

双方Microsoft.Expression.Interactions并System.Windows.Interactivity添加到项目的引用,我甚至复制该DLL的一个文件夹我的项目中.

知道这是怎么来的吗?我使用VS2012和.NET 4.5

Pet*_*ini 66

  1. 删除对Microsoft.Expression.Interactions和 的任何项目引用System.Windows.Interactivity。

  2. 通过 Nuget 安装较新的 Microsoft.Xaml.Behaviors.Wpf,它替换了上述引用,即打开包管理器控制台并键入:

    Install-Package Microsoft.Xaml.Behaviors.Wpf 项目名

  3. 在XAML的文件,替换的xmlns命名空间http://schemas.microsoft.com/expression/2010/interactivity,并http://schemas.microsoft.com/expression/2010/interactions与http://schemas.microsoft.com/xaml/behaviors

  • 你的答案应该在顶部。这是2020年最好的。 (15认同)
  • 这应该是最佳答案!!!! (4认同)

Art*_*oll 54

如果您在其他所有问题之前遇到此问题,请仔细检查是否同时参考了两个Microsoft.Expression.Interactions AND System.Windows.Interactivity.

我只是想提醒一下,我试着像PitAttack76那样在他的答案上写下它并没有为我卸载Blend.它只是卸载一些部分所以当我重新启动计算机并想要在Blend中打开项目时,它会在此线程中写入错误消息.比我必须安装.NET framework 4.5.1和Microsoft Build Tools 2013Blend再次开始工作.然而它并没有帮助我 - 我的问题是,我只Microsoft.Expression.Interactions在我的参考文献中.


Pit*_*k76 11

好的,我已经修好了.当我安装Visual Studio 2012 Professional(带Blend)时,我可以选择安装Blend for Visual Studio.我认为这可能导致问题所以我再次打开安装程序,选择修改并取消选中Blend for Visual Studio选项.

猜猜看,它有效.没有更多的互动错误.这现在再次正常工作!实际问题是什么,我不知道如果有人知道,请告诉我:)

<i:Interaction.Triggers>
    <i:EventTrigger EventName="MouseDoubleClick">
        <i:InvokeCommandAction Command="{Binding AddSelectLocomotifCommand}"
                                                     CommandParameter="{Binding SelectedItem, ElementName=listBoxLocs}" />
    </i:EventTrigger>
</i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)


Eri*_*ett 8

我删除了缺少的参考Microsoft.Expression.Interactions和System.Windows.Interactivity。然后我安装了Hansan Pringle的Nuget软件包Microsoft.SDK.Expression.Blend。这是安装缺少的参考。


Mur*_*nat 7

我有同样的问题。我所做的是:

  1. 在保留名称空间的同时Microsoft.Expression.Interactions, System.Windows.Interactivity从Visual Studio中的项目中删除项目xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"。
  2. 在Blend中打开相同的项目。
  3. 在Blend中添加正确的.net版本,Microsoft.Expression.Interactions然后再 System.Windows.Interactivity重新添加 (在我的情况下为4.5)。