wpf button的Command接收object sender, RoutedEventArgs e
时间: 2024-03-10 19:43:51 浏览: 140
在 WPF 中,Button 控件的 Command 属性绑定的命令的 Execute 方法接收两个参数:object sender 和 RoutedEventArgs e。这两个参数分别表示触发事件的对象和事件的参数。
例如,可以创建一个实现了 ICommand 接口的命令类:
```
public class MyCommand : ICommand
{
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
// 返回一个 bool 值,表示该命令是否可执行
return true;
}
public void Execute(object parameter)
{
// 执行命令的逻辑
if (parameter is Button button)
{
MessageBox.Show($"Button {button.Content} is clicked.");
}
}
}
```
在 XAML 中,可以将 Button 控件的 Command 属性绑定到该命令类的实例:
```
<Button Content="Click Me" Command="{Binding MyCommand}" />
```
在执行命令时,可以将 Button 控件作为参数传递给 Execute 方法,然后在 Execute 方法中获取 Button 控件的属性,例如:
```
public void Execute(object parameter)
{
if (parameter is Button button)
{
string message = $"Button {button.Content} is clicked." +
$"\nWidth: {button.ActualWidth}" +
$"\nHeight: {button.ActualHeight}";
MessageBox.Show(message);
}
}
```
这样,就可以在命令执行时获取 Button 控件的属性,并根据需要进行操作。
阅读全文