通用Windows平台命令参数
如何在没有MVVM框架的情况下在通用Windows平台中创建参数化命令? 我试图实现RelayCommand类,但System.Windows.Input命名空间没有CommandManager类。
如果您不想使用框架,则必须自己实现System.Windows.Input.ICommand
接口。
命令参数可以由属性CommandParameter
传递。 不需要命令管理器。 如果对参数使用单向绑定,则绑定更改时将自动启用/禁用该按钮。 其他任何事情都会引发事件CanExecuteChanged
。
当然,在更高级的场景中,您还必须为命令实现一些状态管理,如果在视图模型中定义命令或使用某种自我实现的命令管理器,则更容易。
简化示例
这里有一个简单的例子,说明如何使用带有x:Bind
绑定的按钮。 不需要视图模型或命令管理器。
Example.xaml:
Example.xaml.cs:
public sealed partial class Example : Page { public SampleCommand FirstCommand { get; set; } = new SampleCommand(); public object SelectedItem { get; set; } public StandardProjectList() { this.InitializeComponent(); } }
SampleCommand.cs:
public class SampleCommand : ICommand { public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return parameter != null; } public void Execute(object parameter) { if (CanExecute(parameter)) //... } }