我正在尝试使用 MVVM 模式来编写 WPF 应用程序。我正在使用缺少自动过滤功能的 WPF 数据网格(来自工具包)。所以我想实现它。我在列标题模板中添加了一个上下文菜单,它有一个名为“Filter”的 MenuItem,它实际上应该调用过滤方法。
因此,我将 MenuItem 的命令设置为适合 ViewModel 的 DelegateCommand。问题是我需要传递有关已右键单击的实际列的信息!如果我没有使用 MVVM,我会实现一个事件处理程序,它会接收一个“发送者”参数(MenuItem),然后我会找到它的父级(ContextMenu),然后它的父级会给我列。但是我怎样才能在这里实现同样的目标呢?如何将发件人传递给我的命令?这可以使用命令参数来完成吗?
我真的不想使用额外的复杂模式来完成这样一个简单的任务。毕竟,MVVM 应该简化开发,而不是相反......