Web-Development-with-Blazor.../Chapter09/MyBlog/Components/RazorComponents/CustomCssClassProvider.cs
2023-02-17 15:28:17 +01:00

20 lines
817 B
C#

using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
namespace Components;
public class CustomCssClassProvider<ProviderType> : ComponentBase where ProviderType : FieldCssClassProvider, new()
{
[CascadingParameter]
EditContext? CurrentEditContext { get; set; }
public ProviderType Provider { get; set; } = new ProviderType();
protected override void OnInitialized()
{
if (CurrentEditContext == null)
{
throw new InvalidOperationException($"{nameof(CustomCssClassProvider<ProviderType>)} requires a cascading parameter of type {nameof(EditContext)}. For example, you can use {nameof(CustomCssClassProvider<ProviderType>)} inside an EditForm.");
}
CurrentEditContext.SetFieldCssClassProvider
(Provider);
}
}