无法从方法组转换为 eventcallback blazor(服务器应用程序)-同步融合网格
cannot convert from method group to eventcallback blazor (Server App) - Sync Fusion Grid
我在 Blazor 服务器应用程序中使用同步融合网格。在网格内部,我正在使用下拉列表。我想触发 even on 下拉更改事件。当我尝试使用以下代码绑定事件时,出现错误“无法从方法组转换为事件回调”。请帮忙
下面是剃须刀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#组件部分的代码class
public void OnSelect(SelectEventArgs args)
{
}
public void ValueChange(Syncfusion.Blazor.DropDowns.ChangeEventArgs<string> args)
{
// you can get changed value in args.Value
}
ValueChanged
属性 声明为 EventCallback<TValue>
,其中 TValue
在您的示例中是 string
。这意味着它期望的方法参数实际上是 string
,而不是 ChangeEventArgs<string>
。因此,将 ValueChange
方法更改为使用 string
应该可以解决此问题:
public void ValueChange(string value)
{
}
相比之下,OnChange
属性 是这样声明的:
public EventCallback<ChangeEventArgs> OnChange
所以也许这就是导致混乱的原因。
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)
{
}
我在 Blazor 服务器应用程序中使用同步融合网格。在网格内部,我正在使用下拉列表。我想触发 even on 下拉更改事件。当我尝试使用以下代码绑定事件时,出现错误“无法从方法组转换为事件回调”。请帮忙
下面是剃须刀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#组件部分的代码class
public void OnSelect(SelectEventArgs args)
{
}
public void ValueChange(Syncfusion.Blazor.DropDowns.ChangeEventArgs<string> args)
{
// you can get changed value in args.Value
}
ValueChanged
属性 声明为 EventCallback<TValue>
,其中 TValue
在您的示例中是 string
。这意味着它期望的方法参数实际上是 string
,而不是 ChangeEventArgs<string>
。因此,将 ValueChange
方法更改为使用 string
应该可以解决此问题:
public void ValueChange(string value)
{
}
相比之下,OnChange
属性 是这样声明的:
public EventCallback<ChangeEventArgs> OnChange
所以也许这就是导致混乱的原因。
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)
{
}