我正在测试一些功能,看看Blazor在Windows窗体应用程序中的可能性。解决方案是文档中的一个,经典的计数器。现在我正在尝试在Windows和Blazor应用程序之间交换数据,它的工作原理基于本文:如何与Windows窗体交互
具体来说,如果我称之为:blazorWebView1.RootComponents.Add<Counter>("#app", new Dictionary<string, object> { { "dummy", "222" } });
我可以看到组件内的参数并使用它的值。
但是我还不能使用在组件内部触发并在主窗体中拦截的回调。
这是回调声明
[Parameter]
public EventCallback Callback { get; set; }
并在Windows Form
public async Task DoSomething()
{
//anything here
}
以及将方法传递给组件
blazorWebView1.RootComponents.Add<Counter>("#app", new Dictionary<string, object> { { "Callback",()=> DoSomething() } });
我已经使用了同一件事的几个变体,但总是得到一个错误。在这种情况下
无法将类型为“System.Func”1[系统.线程.任务.任务]“的对象强制转换为类型”Microsoft.AspNetCore.Components. EventCallback“。
1条答案
按热度按时间bbmckpt71#
事件回调
如果定义了EventCallback类型的参数:
然后你可以这样传递它:
操作
如果定义了Action类型的参数:
然后你可以这样传递它: