从类属性设置并显示Blazor视图组件



我正试图基于blazor中的一个类属性来呈现不同的页面,其中只有一个tagg。

在WPF中,我能够创建多个视图,并在对象的道具中指定要使用UserControl类呈现的视图。

WPF数据内容:

public UserControl DetailView { get; set; }

WPF parentView:

<UserControl Content="{Binding DetailView}"></UserControl>

通过这种方式,我能够根据属性动态呈现不同的页面。

我正努力在布拉佐实现同样的目标。我不想在我的blazorView 中使用一堆If elses

我认为DynamicComponent就是您想要的。

文档:

https://learn.microsoft.com/en-us/aspnet/core/blazor/components/dynamiccomponent?view=aspnetcore-6.0

使用select元素动态选择应渲染哪个组件的示例:

<select @bind="selectedComponentIndex">
@for (var i = 0; i < componentTypes.Count; i++)
{
<option value="@i">@componentTypes[i].Name</option>
}
</select>
<DynamicComponent Type="componentTypes[selectedComponentIndex]" />
@code {
private int selectedComponentIndex = 0;
private List<Type> componentTypes = new List<Type>
{
typeof(Component1),
typeof(Component2),
typeof(Component3),
};
}

相关内容

  • 没有找到相关文章

最新更新