CommandParameter传递给Command,.cs程序
时间: 2023-11-27 12:52:54 浏览: 140
在 C# 中,可以通过 CommandParameter 属性将参数传递给命令绑定。下面是一个示例:
在 XAML 中,可以这样定义一个按钮并绑定命令:
```xml
<Button Content="Click me" Command="{Binding MyCommand}" CommandParameter="Hello World"/>
```
在 ViewModel 中,需要定义一个类型为 ICommand 的属性 MyCommand,并实现 Execute 和 CanExecute 方法:
```csharp
public class MyViewModel : INotifyPropertyChanged
{
private ICommand _myCommand;
public ICommand MyCommand
{
get
{
if (_myCommand == null)
{
_myCommand = new RelayCommand<string>(ExecuteMyCommand, CanExecuteMyCommand);
}
return _myCommand;
}
}
private bool CanExecuteMyCommand(string parameter)
{
// 在这里实现命令是否可执行的逻辑
return true;
}
private void ExecuteMyCommand(string parameter)
{
// 在这里实现命令的执行逻辑
Console.WriteLine("Parameter passed: " + parameter);
}
}
```
注意,这里使用了 RelayCommand 类型来实现命令绑定。它是一个开源的库,你可以通过 NuGet 安装:
```
Install-Package GalaSoft.MvvmLight
```
也可以自己实现 ICommand 接口来定义命令。
阅读全文