Application Data Component
Description
Usage
@using Gap.Blazor
@using Gap.Blazor.Components
@using Microsoft.AspNetCore.Components.Rendering
@using System.Reflection
@namespace Gap.Blazor.Components
@code {
private bool HasChanged = false;
protected override void OnInitialized()
{
base.OnInitialized();
}
protected override void OnAfterRender(bool firstRender)
{
base.OnAfterRender(firstRender);
if (firstRender)
{
Application.CurrentApplication.ItemHasChanged += CurrentApplication_ItemHasChanged;
}
this.HasChanged = false;
}
/// <summary>
/// Handles the ItemHasChanged event of the CurrentApplication control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
private void CurrentApplication_ItemHasChanged(object sender, EventArgs e)
{
if (!HasChanged)
{
HasChanged = true;
this.InvokeAsync(() => this.StateHasChanged());
}
}
}
<div>
@foreach (Gap.Blazor.Form form in Application.ActiveForms)
{
if (!form.IsMdiChild){
if (form.View != null)
{
var formArgs = new Dictionary<string, object>();
formArgs.Add("model", form);
<DynamicComponent @key="form" Type="@form.View" Parameters="@formArgs"></DynamicComponent>
}
else if (form is MessageBox msgBox)
{
<WMMessageBoxComponent @key="msgBox" model="msgBox"></WMMessageBoxComponent>
}
else if (form is InputBox inputBoxForm)
{
<WMInputBoxFormComponent @key="inputBoxForm" model="inputBoxForm"></WMInputBoxFormComponent>
}
else
{
<WMFormComponent @key="form" model="@form"></WMFormComponent>
}
}
}
</div>Properties
Methods
Events
Dynamic Rendering
Last updated