Делегат RenderFragment - Варианты реализации.
Component - "Предок" ...\Parent_RndrFrgmt.razor
Вар 3. `RenderFragment` в компоненте `Предок`. Это текущее время 4/1/2025 5:07:40 PM.
Исходный код
@page "/Parent_RenderFragment"
<p><h2>Делегат RenderFragment - Варианты реализации.</h2></p>
<div style=" padding:5em">
<h4>Component- "Предок" <code>...\Parent_RndrFrgmt.razor</code> </h4>
<RndrFrgmt_Child OnOff=OnOff Var2_RenderFragment=Вар 2. Переменная типа `RenderFragment` из компонента предкa, присвоенная параметру наследника
>
<Var1_RenderFragment>
@Variant_1
</Var1_RenderFragment>
</RndrFrgmt_Child>
<button class="btn-dark" style="margin:1rem" @onclick="@(()=>OnOff = !OnOff)">
@BtnContent: компонент "Наследник"
</button>
<br />
@Variant_3
</div>
@code {
string Variant_1 = "Вар 1. " + DateTime.Now.ToString() + " < Здесь значение времени вложено в компонент наследник, через параметр RenderFragment из компонента предкa";
private RenderFragment Variant_2 =>@<p>Вар 2. Переменная типа `RenderFragment` из компонента предкa, присвоенная параметру наследника</p>;
private RenderFragment Variant_3 = @<p>Вар 3. `RenderFragment` в компоненте `Предок`. Это текущее время @DateTime.Now.</p>;
string BtnContent = "Показать";
bool OnOff = false;
//событие при мзменении отрисовки этого компонента
protected override void OnAfterRender(bool firstRender)
{
BtnContent = OnOff ? "Показать" : "Скрыть";
}
}
------------------------------------------------------------------------------------------
-------------------- Компонент для внедрения: Shared\Parameter\RndrFrgmt_Child.razor --------------------------------
@using Microsoft.AspNetCore.Components
<div style="background-color:blanchedalmond;">
@if (OnOff)
{
<h4>Это внедренный компонент "Наследник" <code>...\Shared\Parameter\RndrFrgmt_Child.razor</code></h4>
<p> @Var1_RenderFragment</p>
@stringTime
<br />
<button style="margin:1rem" @onclick="setTime"> <b>^</b> Показать/Обновить дату и время в компоненте наследнике</button>
<code>@Var2_RenderFragment</code>
}
</div>
@code {
[Parameter]
public RenderFragment Var1_RenderFragment { get; set; }
[Parameter]
public RenderFragment Var2_RenderFragment { get; set; }
string stringTime = "-----------------------";
[Parameter]
public bool OnOff { get; set; }
void setTime()
{
stringTime = $"{DateTime.Now.ToString()} < В компоненте наследника. Значение времени обновлённые через событие, без участия параметра RenderFragment "; ;
}
}