MVVM Light EventToCommand用于自定义网格中的单击事件

时间:2014-01-03 11:44:09

标签: c# wpf xaml mvvm

我一直在尝试让MVVM Lights EventToCommand工作。我看过我能找到的每个样本,甚至从作者网站下载了一个示例应用程序,但没有运气。

我正在使用MVVM Light,因为我需要将eventargs传递给我的命令。

我使用的是继承自标准wpf网格的自定义网格。

XAML:

<cc:MapGrid x:Name="grdTopLayer" Height="448" Width="640" Background="White">
      <i:Interaction.Triggers>
           <i:EventTrigger EventName="MouseLeftButtonDown">
                <cmd:EventToCommand Command="{Binding GridClickCommand}" PassEventArgsToCommand="True" />
           </i:EventTrigger>
      </i:Interaction.Triggers>
</cc:MapGrid>

将DataContext设置为窗口的viewmodel。

视图模型:

public RelayCommand<MouseEventArgs> GridClickCommand { get; private set; }

 private void InitializeCommands()
    {
        GridClickCommand = new RelayCommand<MouseEventArgs>(param => _gridHelper.AddGridImageToGrid(param), can => true);
    }

在viewmodel构造函数中调用Initialize命令。

我在这里缺少什么?

Add_OnStartup:

private void App_OnStartup(object sender, StartupEventArgs e)
    {
        var mainWindow = new MainWindow
        {
                DataContext = new MainViewModel(new XmlReader(), new XmlWriter(), new GridHelper())
        };

        mainWindow.Show();
    }

0 个答案:

没有答案