【问题标题】:MVVM-Light => Pass Command Parameter AND EventArgs to CommandMVVM-Light => 将命令参数和 EventArgs 传递给命令
【发布时间】:2012-07-09 09:48:19
【问题描述】:

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

我确实找到了一篇建议将 EventArgs 作为命令参数传递的帖子,但就我而言,我想在 ViewModel 中同时使用 EventArgsCommand Parameter

有人可以帮忙吗?

【问题讨论】:

  • 这甚至可以使用 MVVM-Light 工具包吗?
  • 我将创建一个轻量级对象,其中包含我需要从事件 args 中获取的信息以及我通常要作为命令参数发送的对象,并且只使用该新的轻量级对象作为我的命令参数。
  • @StewartSweet 抱歉,您如何在视图中创建这样的对象?你能举个例子吗?

标签: c# silverlight mvvm-light commandparameter eventtocommand


【解决方案1】:

解决了问题....以防万一其他人想知道...

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

例子:

我们在 ViewModel Constructor 中使用 eventargs 声明命令

FilterQuotationsCommand = new RelayCommand<GridViewFilteredEventArgs>(FilterQuotationsCommandExecute);

我们在将它转换为发送控件后通过“源”访问发送者。

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
    }

【讨论】:

    猜你喜欢
    • 2011-09-06
    • 2011-09-27
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多