不能从方法组转换为eventcallback blazor (Server App) - Sync Fusion Gri



我在blazor服务器应用程序中使用同步融合网格。在网格内,我使用下拉列表。我想触发偶数下拉改变事件。当我尝试使用以下代码绑定事件时,它会给我错误"无法从方法组转换为eventcallback"。请帮助。

下面是razor HTML代码

<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
}
Event arguments of **OnValueSelect** and **ValueChange** were defined wrongly. Please find the modified code example below. 
<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)
{

}

ValueChanged属性声明为EventCallback<TValue>,其中TValue在您的示例中为string。这意味着它期望的方法参数实际上是string,而不是ChangeEventArgs<string>。因此,将ValueChange方法改为使用string方法应该可以解决这个问题:

public void ValueChange(string value)
{
}

相反,OnChange属性是这样声明的:

public EventCallback<ChangeEventArgs> OnChange

所以也许这就是导致混乱的原因。

相关内容

最新更新