WPF中的路由命令实现

时间:2017-07-20 15:19:36

标签: c# wpf prism commandbinding

我有简单的ICommand-Bindings工作,但是我在ItemsControl中有Buttons并希望获得发送者信息,就像普通的Routed-Events (object sender, e RoutedEventArgs)一样,这对于普通的ICommands似乎是不可能的,对吗? / p>

我有点迷失在这里。

我目前使用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工作?

1 个答案:

答案 0 :(得分:1)

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

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