原始类型的 Blazor Radzen 下拉列表?

Blazor Radzen dropdown on primitive type?

我有一个 Blazor 应用程序,我在其中使用 Radzen 组件。具体来说,我正在使用下拉组件。我 运行 遇到无法将数据绑定到浮动列表的问题。

<RadzenDropDown @bind-Value="@model.modelValue" Data="options"></RadzenDropDown>

@code {
    List<float> options;
    options.Add(1);
    options.Add(2);
    ...
}

当我尝试这样做时,出现以下错误:

cannot convert from 'System.Collections.Generic.List' to 'System.Collections.Generic.IEnumerable'

我知道可以执行以下操作使其工作:

<RadzenDropDown @bind-Value="@model.modelValue" TextProperty="Text"  Data="@(options.Select(s => new { Text = s, Value = s }))"></RadzenDropDown>

我想避免这种情况,因为我有一个允许用户手动输入值的模式,如果我必须将浮点值转换为对象,我无法显示该值。

有没有绑定到基元的方法?

该组件正在寻找 IEnumerable<object>,而不是 float。您可以传入一个 List<object>(因为它实现了 IEnumerable),然后将 float 放入其中,因为 floatobject。这是一个完整的工作示例。

@page "/radzentest"


<RadzenDropDown TValue="float" Data="Options"></RadzenDropDown>

@code {

    List<object> Options = new List<object>();
    protected override void OnInitialized()
    {
        Options.Add(1.1f);
        Options.Add(2.5f);
    }
}

结果:

我不确定是否有 Radzen 无法做到这一点的技术原因,我不明白,但他们不这样做似乎是一个错误 IEnumerable<T>IEnumerable<object>