找不到 WPF MvxEventToCommand
WPF MvxEventToCommand not found
在 WPF 中测试 MvxEventToCommand 的几个步骤:
- 创建新的 Wpf 项目 (.net 4.6.1)
- 安装 nuget 包MvvmCross.Platforms.Wpf
- 添加对 System.Window.Interactivity
的引用
将 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。
在 WPF 中测试 MvxEventToCommand 的几个步骤:
- 创建新的 Wpf 项目 (.net 4.6.1)
- 安装 nuget 包MvvmCross.Platforms.Wpf
- 添加对 System.Window.Interactivity 的引用
将 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。