在RenderTreeBuilder中分配Change-Event



我有以下代码:

@code
{
RenderFragment CreateComponent() => builder => 
{
builder.OpenElement(0, "input");
//...
builder.AddAttribute(0, "onchange", EventCallback.Factory.Create(foo, DoSomething))
}
void DoSomething()
{
//...
}
}

我想将复选框的onchange-event分配给一个方法,但是当我这样做时,我得到以下错误:

参数2:不能从'method group'转换为'EventCallback'

我做错了什么?

更新:

我现在改成:

builder.AddAttribute(1, "Change", RuntimeHelpers.TypeCheck<EventCallback<bool>>(EventCallback.Factory.Create(context, (args) => DoSomething(args))));

现在我收到多个错误:

字段初始化项不能引用非静态字段、方法或属性'.DoSomething(object)'

无法将lambda表达式转换为预期的委托类型,因为块中的某些返回类型不能隐式转换为委托返回类型

更新2

我的RenderFragment-Method在原始版本中是这样的:

RenderFragment<RadzenTreeItem> RenderFileOrFolder = (context) => builder =>

builder.OpenElement(0, "input");
//...
builder.AddAttribute(0, "onchange", EventCallback.Factory.Create(context, DoSomething))

所以可能这就是问题所在…

试试这样:

builder.AddAttribute(12, "Click", Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<Microsoft.AspNetCore.Components.EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>>(Microsoft.AspNetCore.Components.EventCallback.Factory.Create<Microsoft.AspNetCore.Components.Web.MouseEventArgs>(this, 
(args) => Click(args, "Button with text")
)));

相关内容

  • 没有找到相关文章

最新更新