gpt4 book ai didi

c# - MVVM Light RelayCommand 参数

转载 作者:IT王子 更新时间:2023-10-29 03:53:08 24 4
gpt4 key购买 nike

我在使用 GalaSoft MVVM Light 框架将参数传递给中继命令时遇到问题。我知道 mvvm light 的 relaycommand 实现不使用 lambda 参数,所以我做了一些研究并找到了人们通过做这样的事情来解决它的方法:

public RelayCommand ProjMenuItem_Edit
{
get
{
if (_projmenuItem_Edit == null)
{
//This should work....
_projmenuItem_Edit = new RelayCommand(ProjEditNode);
}
return _projmenuItem_Edit;
}
}

private void ProjEditNode(object newText)
{
var str = newText as string;
OrganLocationViewModel sel =
ProjectOrganLocationView.GetExtendedTreeView().GetTopNode();

//Console.WriteLine(sel.OrganDisplayName);
sel.OrganDisplayName = str;
}

但是,我一直在 _projmenuItem_Edit = new RelayCommand(ProjEditNode); 行上收到错误,上面写着 Argument 1: cannot convert from 'method group' to 'System.Action'

我错过了什么?

最佳答案

我相信这会奏效:

_projmenuItem_Edit = new RelayCommand<object>((txt)=>ProjEditNode(txt));

-- 编辑--

您还需要使用类型定义您的 RelayCommand:

例如

public RelayCommand<string> myCommand { get; private set; }
myCommand = new RelayCommand<string>((s) => Test(s));

private void Test(string s)
{
throw new NotImplementedException();
}

关于c# - MVVM Light RelayCommand 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5298910/

24 4 0