C# 无法从方法组转换为eventcallback blazor(服务器应用)-同步融合网格
我正在blazor服务器应用程序中使用同步融合网格。在网格内部,我使用下拉列表。我想触发偶数下拉更改事件。当我尝试使用以下代码绑定事件时,它给出了一个错误“无法从方法组转换为eventcallback”。请帮忙 下面是razor HTML代码C# 无法从方法组转换为eventcallback blazor(服务器应用)-同步融合网格,c#,asp.net-core,blazor,blazor-server-side,syncfusion,C#,Asp.net Core,Blazor,Blazor Server Side,Syncfusion,我正在blazor服务器应用程序中使用同步融合网格。在网格内部,我使用下拉列表。我想触发偶数下拉更改事件。当我尝试使用以下代码绑定事件时,它给出了一个错误“无法从方法组转换为eventcallback”。请帮忙 下面是razor HTML代码 <GridColumn HeaderText="Action" TextAlign="TextAlign.Center" Width="95"> <Template>
<GridColumn HeaderText="Action" TextAlign="TextAlign.Center" Width="95">
<Template>
<SfDropDownList TItem="ActionDDLVM" Value="@((context as ActionDDLVM).Id)" TValue="string" PopupHeight="100px" Placeholder="Action" DataSource="@LstAction">
<DropDownListEvents TValue="string" TItem="ActionDDLVM" OnValueSelect="OnSelect" ValueChange="ValueChange"></DropDownListEvents>
<DropDownListFieldSettings Text="Text" Value="Id"></DropDownListFieldSettings>
</SfDropDownList>
</Template>
</GridColumn>
下面是C#组件部分类中的代码
public void OnSelect(SelectEventArgs args)
{
}
public void ValueChange(Syncfusion.Blazor.DropDowns.ChangeEventArgs<string> args)
{
// you can get changed value in args.Value
}
public void OnSelect(SelectEventArgs args)
{
}
public void ValueChange(Syncfusion.Blazor.DropDowns.ChangeEventArgs args args)
{
//您可以在args.value中获得更改的值
}
将ValueChanged
属性声明为EventCallback
,其中TValue
在示例中是string
。这意味着它期望的方法参数实际上是string
,而不是ChangeEventArgs
。因此,将ValueChange
方法改为使用string
应该可以解决以下问题:
public void ValueChange(string value)
{
}
相反,OnChange
属性的声明方式如下:
public EventCallback<ChangeEventArgs> OnChange
public EventCallback OnChange
因此,也许这就是导致混乱的原因
Event arguments of **OnValueSelect** and **ValueChange** were defined wrongly. Please find the modified code example below.
/SfDropDownList>
选择时公共无效(选择事件Args Args)
{
}
公共无效值更改(ChangeEventArgs Args)
{
}
是否缺少类型?“声明公共事件回调值更改{get;set;}
”非常感谢@user12702211您的解决方案对我有效
<GridColumn HeaderText="Action" TextAlign="TextAlign.Center" Width="95">
<Template>
<SfDropDownList TItem="ActionDDLVM" Value="@((context as ActionDDLVM).Id)" TValue="string" PopupHeight="100px" Placeholder="Action" DataSource="@LstAction">
<DropDownListEvents TValue="string" TItem="ActionDDLVM" OnValueSelect="OnSelect" ValueChange="ValueChange"></DropDownListEvents>
<DropDownListFieldSettings Text="Text" Value="Id">
</DropDownListFieldSettings>
/SfDropDownList>
</Template>
</GridColumn>
public void OnSelect(SelectEventArgs<ActionDDLVM> Args)
{
}
public void ValueChange(ChangeEventArgs<string, ActionDDLVM> Args)
{
}