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

mym*_*est 6 c# blazor blazor-client-side

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

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

@code {
    List<float> options;
    options.Add(1);
    options.Add(2);
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我尝试此操作时,出现以下错误:

无法从“System.Collections.Generic.List”转换为“System.Collections.Generic.IEnumerable”

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

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

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

反正有绑定到原语吗?

Kyl*_*yle 3

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

@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);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:
在此输入图像描述

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