C# 是否可以扩展blazor组件的属性?

C# 是否可以扩展blazor组件的属性?,c#,blazor,blazor-webassembly,C#,Blazor,Blazor Webassembly,我想在我的TabControl组件中展开属性Items 所以不是 <TabControl Items="@MyListOfItems" /> 我想打开或扩展属性-不知道该怎么称呼它-并直接添加我的项目,而不是使用列表并在我的代码隐藏或@code块中将其定义为香草c <TabControl> <TabControl.Items> <TabItem Title="foo">

我想在我的
TabControl
组件中展开属性
Items

所以不是

<TabControl Items="@MyListOfItems" />

我想打开或扩展属性-不知道该怎么称呼它-并直接添加我的项目,而不是使用列表并在我的代码隐藏或@code块中将其定义为香草c

<TabControl>
    <TabControl.Items>
        <TabItem Title="foo">
            content for my <strong>foo</strong> page
        </TabItem>
        <TabItem Title="bar">
            content for my <strong>bar</strong> page
        </TabItem>
    </TabControl.Items>
</TabControl>

我的foo页面的内容
我的栏的内容页面

是的,你可以这样做。您将创建一个父组件,我们称之为
TabSet.razor
。然后在该组件中,您需要有一个
RenderFragment
作为
[参数]
来处理子组件。然后需要一个
Tab.razor
组件来处理实际的选项卡内容/标题。这里有一个非常简短的概述。但是,请参阅下面的链接以获取来自Microsoft的完整代码示例

剃刀

    @儿童内容
[参数]
公共RenderFragment ChildContent{get;set;}
用法:


剃须刀

  • @头衔
  • [参数]
    公共字符串标题{get;set;}
    [参数]
    公共字符串TabActiveClass{get;set;}
    

    有一个很棒的Microsoft指南,但是他们用一个表格示例代替了它,不过这里是该指南的历史参考:

    如果我理解的话。。。。如果您的选项卡项总是相同的,您可以使用字典而不是键为标题的列表。然后您可以手动构建每个TabItem,但要从字典中提取内容。我真的没有看到这样做的理由,但如果这是你想要的,你看过Steve Sanderson(Blazor的主要作者之一)的例子吗?这就是我实现选项卡控件的方式,也是您在这里描述的那种情况的一般解决方案。(使用接口在两种组件之间进行协调)