Prism 按钮绑定DelegateCommand<object>并传入参数
时间: 2024-12-08 12:16:46 浏览: 10
Prism是一种用于WPF和 Silverlight框架的MVVM (Model-View-ViewModel)设计模式库。当你想要在视图模型层中创建可管理的命令,并能够将数据作为参数传递给命令时,可以使用`DelegateCommand`。`DelegateCommand<T>`是`Prism.Commands`命名空间下的类,它是一个泛型版本的命令,允许你在命令执行时访问指定类型的参数。
例如,如果你有一个按钮需要绑定到一个接受字符串参数的命令:
```csharp
// 创建一个依赖于某个属性的 DelegateCommand<string>
DelegateCommand<string> myCommand = new DelegateCommand<string>(ExecuteMyCommand, CanExecuteMyCommand);
// 视图model中的方法
private void ExecuteMyCommand(string parameter)
{
// 在这里处理你的业务逻辑,参数是parameter
}
private bool CanExecuteMyCommand(string parameter)
{
// 根据参数或其他条件判断是否可以执行命令
return !string.IsNullOrEmpty(parameter);
}
// 在XAML中绑定按钮
<Button Command="{Binding MyCommand}" Content="Click me!">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cmd:EventToCommand/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
```
在这个例子中,`MyCommand`属性是你在视图模型中公开的`DelegateCommand<string>`实例,当用户点击按钮时,会触发`ExecuteMyCommand`方法,并传递给它的字符串参数。
阅读全文