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的主要作者之一)的例子吗?这就是我实现选项卡控件的方式,也是您在这里描述的那种情况的一般解决方案。(使用接口在两种组件之间进行协调)