【问题标题】:How to bind a List<KeyValuePair> with the Value being a List of "some" object as DataSource to a (SyncFusion) DropDownList?如何将 List<KeyValuePair> 的值作为 DataSource 的“某些”对象列表绑定到(SyncFusion)DropDownList?
【发布时间】:2021-01-04 06:06:14
【问题描述】:

我正在尝试将一个列表作为数据源绑定到我的 (SyncFusion) DropDownList,我原来的数据源是一个字典,看起来像这样:

public Dictionary<string, List<Kpi>> KpiGroupDropDown { get; set; } = new Dictionary<string, List<Kpi>>();

如您所见,此 Dictionary 包含 3 个项目,项目 1[index 0] 的键为“Propulsion”,它引用了包含 3 个对象的 List。

因为 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


    【解决方案1】:

    目前,syncfusion 不支持将 TValue 呈现为 Dropdownlist 组件中的复杂数据类型。我们已经考虑过这个复杂的场景,并将这个需求记录为我们最后的功能请求。我们将在我们即将发布的任何版本中实现此功能。感谢您的耐心等待。

    【讨论】:

      猜你喜欢
      • 2021-10-16
      • 1970-01-01
      • 2010-10-04
      • 2013-10-21
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多