【问题标题】:An error in handling event. MVVM处理事件时出错。 MVVM
【发布时间】:2014-04-23 09:34:04
【问题描述】:

我正在使用 Visual Studio 2010 SP1。我遇到了很多描述事件处理代码的文章(见下文)。例如thisthis 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>       

因此我有两个问题:

  1. 我在哪里可以获得房产Command?或者我应该写什么来代替它?我试过写CommandName,但我发现了一个错误。

  2. 我应该给CommandParameter 属性写什么?我应该在视图模型中创建什么类型的属性以将其绑定到CommandParameter

【问题讨论】:

  • 您是否使用任何第三方框架?
  • 你需要定义一个实现ICommand接口的类。您可以查看this link,这可能有助于您了解Command
  • 你的 i 命名空间是什么?
  • @aks81 是的,我正在使用 ICommand。
  • 这很奇怪,因为它可以在我的计算机上编译和运行而没有错误,而且我什至没有虚拟机,只是复制了您的代码。您安装了 Blend SDK 4.0?

标签: wpf events mvvm listbox event-handling


【解决方案1】:

正如我们在WPF聊天室中所说的,看看下面的问题,它和你的问题很相似。

Properties does not exist : System.Windows.Interactivity?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 2019-05-04
    • 1970-01-01
    • 2010-12-05
    相关资源
    最近更新 更多