Mvvmlight工具包WPF4.5中不存在EventToCommand。

10

我使用的是最新版本为4.1.26.24928的MVVMLight Tookit,并且正在使用WPF 4.5编写程序。

现在我无法在VS2012 XAML文件中使用EventToCommand,它显示"EventToCommand" does not exist in the namespace "clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.WPF45"

我的dll引用如下:

System.Windows.Interactivity (v4.5.0.0)

Galasoft.MvvmLight.WPF45 (v4.1.26.24928)

Galasoft.MvvmLight.Extras.WPF45 (v4.1.26.24928)

这是我的代码:

命名空间:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.WPF45"

文本块:

<TextBlock>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseDown">
            <cmd:EventToCommand></cmd:EventToCommand>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</TextBlock>

我做错了什么吗?谢谢!


9
我自己解决了这个问题,我包含了错误的命名空间,应该是 xmlns:cmd="http://www.galasoft.ch/mvvmlight" - TinySnake
1个回答

6

我遇到了类似的问题,使用VS2013。我的错误信息是:

在命名空间 "http://www.galasoft.ch/mvvmlight" 中找不到EventToCommand

看起来一切都匹配,但项目重构/清理等操作之后仍然无法运行。

解决方案:

1) 在解决方案资源管理器中右键点击项目,使用NuGet卸载 "MVVM Light Libraries only" (它会问你是否也要卸载相关的CommonServiceLocator, 选择 "yes")

然后重新编译一下(万一需要)。此时会出现很多错误,但关于EventToCommand的那些错误依然存在。

2) 再次使用NuGet安装 "MVVM Light Libraries only"。重新编译后就可以了,没有错误和警告,继续前进吧 ;-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接