找不到 WPF MvxEventToCommand

WPF MvxEventToCommand not found

在 WPF 中测试 MvxEventToCommand 的几个步骤:

  1. 创建新的 Wpf 项目 (.net 4.6.1)
  2. 安装 nuget 包MvvmCross.Platforms.Wpf
  3. 添加对 System.Window.Interactivity
  4. 的引用
  5. 将 xaml 代码添加到 MainWindow:

    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    xmlns:cmd="clr-namespace:MvvmCross.Platforms.Wpf.Commands;assembly=MvvmCross.Platforms.Wpf"
    

    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Loaded">
            <cmd:MvxEventToCommand Command="{Binding LoadedCommand}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>

在此之后我得到错误:

The name "MvxEventToCommand" does not exist in the namespace

示例中的其他命名空间给出了相同的结果。我做错了什么? 我临时解决问题的方法是在我的 Wpf 项目中复制 MvxEventToCommand.cs 源...

更新: 在 repo returns 中搜索 "MvxEvenToCommand" 甚至 "EventToCommand" 都没有结果。 MvvmCross 真的包含这个 class 吗?

你会在 Stack Overflow 和互联网的其他地方发现这个问题一百万次。有时我自己也在挣扎。以下是我建议尝试修复它的步骤。

1.清理并重建解决方案。

转到“构建”>“清理解决方案”,然后“构建”>“重建解决方案”。这可能会解决问题。

2。检查项目的存储位置。

有时,当解决方案存储在网络驱动器上时,会出现此问题并且不会消失。尝试将解决方案复制到本地驱动器,看看是否可以解决问题

3。确保您的代码实际上正确引用了命名空间。

如果您恰好在使用 MVVM,或者即使没有,请确保每个文件都链接到它应该链接的位置。确保您的 XAML 具有正确的 x:Class 并确保您的数据上下文是有序的。

4.在管理员模式下尝试 运行 您的 IDE

在极少数情况下,这会解决问题

5.再次执行步骤 1

6.哭

躺下,哭泣,希望有经验的排查高手来帮助你,因为我真的不知道我在说什么。这正是最终对我有用的。

7.重复步骤 1-6,直到您放弃完成程序的所有希望

就是这样。我希望这有帮助。如果您不使用 Visual Studio,您将不得不自己弄清楚如何重建项目,尽管这应该不难。

这已从 6.1 中的 MvvmCross 中删除。您可以自己复制它,也可以找到其他替代方案。

原因是在使用多目标时,对 System.Window.Interactivity 的依赖性存在问题。如果我们能解决这个问题,我们很乐意将其添加回去。我们会为此接受 PR。