MVVM-Light =>将命令参数和EventArgs传递给命令

时间:2012-07-09 09:48:19

标签: c# silverlight mvvm-light commandparameter eventtocommand

在Silverlight 5中使用MVVM-Light Toolkit,我试图找到一种方法将Command Parameters AND EventArgs传递给事件到命令中的ViewModel行为。

我确实发现了一条建议将EventArgs传递为命令参数的帖子,但在我的情况下,我想在ViewModel中使用EventArgsCommand Parameter

任何人都可以提供帮助?

1 个答案:

答案 0 :(得分:11)

解决了问题....如果有人想知道......

概念:我们只需要通过MVVM-Light事件将EventArgs传递给Command。对于Command,有一个属性来源。我们可以将这个'Source'属性转换为生成此命令的对象。

示例:

我们在ViewModel构造函数

中使用eventargs声明命令
FilterQuotationsCommand = new RelayCommand<GridViewFilteredEventArgs>(FilterQuotationsCommandExecute);

我们在将其发送到发送控件后通过“Source”访问发件人。

private void FilterQuotationsCommandExecute(GridViewFilteredEventArgs e)
    {
        var grid = (RadGridView) e.Source; // we casted the Source to Grid
        var item = grid.SelectedItem;      // we can access grid's selected items
    }