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
方法中设置已执行。
我有简单的 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
方法中设置已执行。