WPF 中的路由命令实现

Routed Command Implementation in WPF

我有简单的 ICommand-Bindings 工作,但是我在 ItemsControl 中有 Buttons 并想获取发件人信息,就像普通的 Routed-Events (object sender, e RoutedEventArgs) 一样,这对于普通的 ICommands 似乎是不可能的,对吧?

我在这里有点迷路了。

我目前使用 Prism 6 DelegateCommand-Class 来运行。它看起来像这样:

private ICommand _selectCommand;
public ICommand SelectCommand
{
    get
    {
        return _selectCommand ?? (_selectCommand = new DelegateCommand<object>(SelectImage));
    }
}

private void SelectImage(object image)
{
    var img = (BitmapImage)image;
    var index = Scans.IndexOf(img);
    this.CurrentIndex = index + 1;
    ImageToDisplay = img;
} 

如何让 RoutedCommand 工作?

视图模型不应该访问甚至不知道任何视图元素。

您应该将视图中控件的目标 属性 绑定到视图模型的源 属性,您可以在命令获取时简单地在 SelectImage 方法中设置已执行。