gpt4 book ai didi

c# - 将参数传递给 ICommand

转载 作者:可可西里 更新时间:2023-11-01 07:57:41 26 4
gpt4 key购买 nike

我有一个简单的按钮,它在执行时使用一个命令,一切正常,但我想在单击按钮时传递一个文本参数。

我认为我的 XAML 没问题,但我不确定如何编辑我的 RelayCommand 类以接收参数:

<Button x:Name="AddCommand" Content="Add" 
Command="{Binding AddPhoneCommand}"
CommandParameter="{Binding Text, ElementName=txtAddPhone}" />
public class RelayCommand : ICommand
{
private readonly Action _handler;
private bool _isEnabled;

public RelayCommand(Action handler)
{
_handler = handler;
}

public bool IsEnabled
{
get { return _isEnabled; }
set
{
if (value != _isEnabled)
{
_isEnabled = value;
if (CanExecuteChanged != null)
{
CanExecuteChanged(this, EventArgs.Empty);
}
}
}
}

public bool CanExecute(object parameter)
{
return IsEnabled;
}

public event EventHandler CanExecuteChanged;

public void Execute(object parameter)
{
_handler();
}
}

最佳答案

更改 ActionAction<T>所以它需要一个参数(可能只是 Action<object> 是最简单的)。

private readonly Action<object> _handler;

然后只需将参数传递给它:

public void Execute(object parameter)
{
_handler(parameter);
}

关于c# - 将参数传递给 ICommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13112557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com