创建一个系统,我可以轻松地将viewmodel附加到视图中,并跟踪视图中列表中的选定项目。 - 但没有严格的约束力。我试着遵循某个"配方"我找到了here。
现在我已经开始有一个直接的问题:
我在这篇文章中使用的方法使用EventTriggerBehavior来调用a 发生SelectionChanged事件时ViewModel中的命令。为此 在工作中,您需要将Behaviors SDK添加到两个项目中 (通用应用中的Windows和Windows Phone)。
当我打开项目的参考资料时,我没有看到" windows phone 8.1" (显然,我没有创建一个Windows Phone应用程序)。在"框架"但是,我没有看到列出的sdks - 我在任何参考文献中都找不到的交互/行为sdk。
现在我已经注意到代码完成为" interactiveity"添加了一个模式。默认情况下已经:xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
- 所以可能已经为Windows应用程序安装了sdks。我只是尝试了下一件事,包括"核心"名称空间:
<xmlns:core="using:Microsoft.Xaml.Interactions.Core" />
可悲的是,这失败了,代码突出显示器为Xaml.Interactions.Core
部分提供了一个错误,说明那些不存在。 (让我相信我必须回到上面的第1步)。
那我该怎么办?
答案 0 :(得分:1)
使用NuGet安装System.Windows.Interactivity
:https://www.nuget.org/packages/System.Windows.Interactivity.WPF/。然后,您可以使用InvokeCommandAction类型:
<ListView Name="MyListOfImportantThings" SelectionMode="Multiple">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectionChangedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ListView>
有关详细信息,请参阅以下博客文章:https://blog.magnusmontin.net/2013/06/30/handling-events-in-an-mvvm-wpf-application/。
通用应用和WPF不使用相同的XAML堆栈。