我正在尝试使用 blazor 的 Virtualize 功能,该功能出现在我能找到的所有文档中,非常简单。但是,当我运行以下代码时,foreach 按预期显示,但 Virtualize 不显示任何内容。我正在尝试使用 .NET 8.0 预览 Web 应用程序来执行此操作。
@page "/mypage"
<PageTitle>My Page</PageTitle>
<p>foreach</p>
<div style="height:100px;overflow-y:scroll">
@foreach (string item in stringList)
{
<div>@item</div>
}
</div>
<p>Virtualize</p>
<div style="height:100px;overflow-y:scroll">
<Virtualize Items="@stringList">
<div>@context</div>
</Virtualize>
</div>
@code
{
private List<string>? stringList;
protected override void OnInitialized() =>stringList ??= new() { "Here's a string!", "Here's another string!" };
}
这是我得到的结果:
我还尝试将上下文设置为不同的名称并添加占位符内容。所有这些都导致什么都没有显示。
您需要声明页面的渲染模式属性。在 .NET 8 Blazor 中,您需要声明渲染模式以启用交互性。Virtualize 似乎被认为是一个交互式组件。