【发布时间】:2021-01-04 06:06:14
【问题描述】:
我正在尝试将一个列表作为数据源绑定到我的 (SyncFusion) DropDownList,我原来的数据源是一个字典,看起来像这样:
public Dictionary<string, List<Kpi>> KpiGroupDropDown { get; set; } = new Dictionary<string, List<Kpi>>();
如您所见,此 Dictionary
因为 SyncFusion DropDownList 只接受 ICollection 类型,所以我已将我的字典转换为这样的列表:
List<KeyValuePair<string, List<Kpi>>> list = new List<KeyValuePair<string, List<Kpi>>>();
现在我初始化了我的 (SyncFusion) DropDownList:
<SfDropDownList TValue="KeyValuePair<string, List<Kpi>>"
TItem="KeyValuePair<string, List<Kpi>>"
DataSource="@list"
@bind-Value="@SelectedGroupChartType"
CssClass="custom-dropdown"
Width="100px">
<DropDownListEvents TValue="KeyValuePair<string, List<Kpi>>" ValueChange="@OnChartTypeSelected" />
<DropDownListFieldSettings Text="list.Key" />
</SfDropDownList>
但是,我在 TValue、TItem、DropDownListEvent TValue 和 DropDownListFieldSettings Text 处填写的项目不正确(我认为)。我也不确定这些属性要填写什么,有人可以帮我解决这个问题吗?
我还在DropDownListEvents中为这个DropDownList添加了一个ValueChange(OnChange方法),叫做“OnChartTypeSelected”,该方法的代码如下:
private void OnChartTypeSelected(Syncfusion.Blazor.DropDowns.ChangeEventArgs<KeyValuePair<string, List<Kpi>>> args)
{
var test= args;
}
我想要达到的目标:
DropDownList 显示 KeyValuePair 中每个项目的键,我想将所选项目的值(列表)传递到我的 OnChange 方法的“Args”中。
有谁知道我如何做到这一点?
提前致谢!
【问题讨论】:
标签: c# dictionary dropdown key-value syncfusion