【发布时间】:2014-04-23 09:34:04
【问题描述】:
我正在使用 Visual Studio 2010 SP1。我遇到了很多描述事件处理代码的文章(见下文)。例如this 和this one。
我添加了一个程序集System.Windows.Interactivity。我正在使用ICommand 接口来处理命令。但是,当我在该行中编写属性“命令”时:
<i:InvokeCommandAction Command="{Binding SelectionChangedCommand}"/>
我发现一个错误: 属性"Command" 不存在于命名空间 XML“clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity”中。强>。
<ListBox ItemsSource="{Binding SomeData}" Grid.Row="2" Margin="10" Background="LightGreen">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<i:InvokeCommandAction CommandName="{Binding SelectionChangedCommand}" CommandParameter="{Binding YourCommandParameter}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ListBox>
因此我有两个问题:
我在哪里可以获得房产
Command?或者我应该写什么来代替它?我试过写CommandName,但我发现了一个错误。我应该给
CommandParameter属性写什么?我应该在视图模型中创建什么类型的属性以将其绑定到CommandParameter?
【问题讨论】:
-
您是否使用任何第三方框架?
-
你需要定义一个实现
ICommand接口的类。您可以查看this link,这可能有助于您了解Command -
你的 i 命名空间是什么?
-
@aks81 是的,我正在使用 ICommand。
-
这很奇怪,因为它可以在我的计算机上编译和运行而没有错误,而且我什至没有虚拟机,只是复制了您的代码。您安装了 Blend SDK 4.0?
标签: wpf events mvvm listbox event-handling