2017-07-20 59 views
-1

我有简单的ICommand绑定工作,但是我有一个ItemsControl中的按钮,并希望得到发件人的信息,就像正常的Routed-Events (object sender, e RoutedEventArgs)这似乎是不可能与正常的ICommands,对不对?WPF中的路由命令实现

我在这里有点失落。

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

+0

您可以将BitmapImage作为CommandParameter发送。 – mm8

+0

我这样做,但我需要改变与元素相关联的按钮,我无法访问viewmodel内的UI元素。 –

+0

你如何调用该命令? – mm8

回答

1

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

你应该在视图中,你可以在你的SelectImage方法时,你的命令被执行简单的设置视图模型的源属性控制的目标属性绑定。

+0

获得的经验教训!非常感谢您的帮助。 –

+1

是的,但是我只能在4分钟内做到这一点,但我通常会参加一个。我为此留下来。 –