Dom*_*see 2 c# wpf command mvvm icommand
我目前正在重构我的程序以使用MVVM.我现在尝试使用命令2天,但我找不到使用它们的好方法.
快捷方式只能与RoutedCommands和RoutedUICommands一起使用,必须在代码隐藏文件中定义CanExecute和Executed事件处理程序才能访问ui元素,从而降低了可重用性.
如果在viewmodel中定义了命令,则无法访问ui-elements.
2个例子来说明我在这里说的话:
听起来像你需要使用RelayCommand或类似的.这是扩展一个类ICommand的界面和不的RoutedCommand......你可以把它作为一个delegate命令.代替定义每个命令一个单独的类的,可以简单地定义命令逻辑和的canExecute处理程序内联.这是一个简化的例子:
public ICommand SaveCommand
{
get { return new RelayCommand(execute => Save(), canExecute => CanSave()); }
}
Run Code Online (Sandbox Code Playgroud)
您可以在GitHub上的RelayCommand.cs页面中找到它的实现,并在MDSN Magazine 的Commands,RelayCommands和EventToCommand页面中找到它的描述.
最后,您可以使用以下KeyBinding类为这些命令设置键盘快捷键:
<KeyBinding Gesture="CTRL+S" Command="{Binding Save, Mode=OneWay}" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3521 次 |
| 最近记录: |