有没有一种方法可以检查RenderFragment是否为空?
例如,在下面的代码中,如果MyComp
为true,Detail
将显示Open
,并且您可以通过单击标题来切换Open
。现在,如果没有标题,我希望Detail
片段始终处于打开状态。如果有HeaderTitle.IsEmpty
之类的属性,这将很容易。
<MyComp Open="false">
<HeaderTitle>
@if (!String.IsNullOrEmpty(hdr)) {
...
<div class="flex-grow"> @hdr </div>
}
</HeaderTitle>
<Detail>
...
</Detail>
</MyComp>
修改
为进一步讨论,我添加了功能请求here。
答案 0 :(得分:0)
以下代码片段显示了如何使用Razor模板来定义RenderFragment和RenderFragment值,如下所示:
@{
RenderFragment template = @<p>The time is @DateTime.Now.</p>;
RenderFragment<Pet> petTemplate = (pet) => @<p>Your pet's name is @pet.Name.</p>;
}
如果这在Blazor中可行,我想也可以检查RenderFragment是否不为空:
if ( template == null) {// the template property is empty}
因此,您可以在组件的生命周期事件之一中对此进行编码,并采取相应措施...
我希望我能理解您的问题,并且对您有帮助...
答案 1 :(得分:0)
旧问题,但由于尚未得到解答,正在投票....
RenderFragment是一种代码方法,而不是容器,因此它不具有Empty
状态。
它可以为null-从某种意义上说是空的,因为它不会产生任何渲染输出。
在此问题中,您可以将null
视为Empty
-只需在您的代码中包含一个方法
bool HeaderTitleIsEmpty => HeaderTitle is null;