绑定到命令
执行操作的控件,如Button具有可以绑定到ICommand的Command属性。激活控件时(例如单击按钮时),将调用ICommand.Execute方法。
在ReactiveUI的ReactiveCommand中可以找到ICommand的良好实现。如果您使用Avalonia MVVM应用程序创建了应用程序模板,则默认情况下可用。请参阅ReactiveUI文档获取更多信息。
一个例子:
namespace Example
{
public class MainWindowViewModel : ViewModelBase
{
public MainWindowViewModel()
{
DoTheThing = ReactiveCommand.Create(RunTheThing);
}
public ReactiveCommand<Unit, Unit> DoTheThing { get; }
void RunTheThing()
{
// 此处执行命令的代码。
}
}
}CommandParameter
也可以使用CommandParameter属性将参数传递给命令:
注意:不会对CommandParameter执行类型转换,因此如果您需要的类型参数不是string,则必须在XAML中提供该类型的对象。例如,要传递int参数,可以使用:
与任何其他属性一样,CommandParameter也可以被绑定。
绑定到方法
ICommand.Execute
有时,您只想在单击按钮时调用一个方法,而不想专门创建命令,你也可以这样做!
ICommand.CanExecute
如果需要使执行依赖于CommandParameter或ViewModel属性,则可以定义由前缀“Can”和执行方法名称组成的命名方法;该方法将接受作为CommandParameter的对象参数,并返回一个布尔值。
触发ICommand.CanExecute
如果要从ViewModel中触发CanExecute,则必须用一个或多个DependsOn属性来修饰它,其中,当CanExecute方法更改值时,propertyName是将激活该方法的属性的名称。
范例
最后更新于
这有帮助吗?