@using System.Linq.Expressions
@typeparam TValue
@implements IDisposable
@foreach (var message in EditContext.GetValidationMessages(_fieldIdentifier))
{
@message
}
@code {
[CascadingParameter]
private EditContext EditContext { get; set; }
[Parameter]
public Expression> For { get; set; }
[Parameter(CaptureUnmatchedValues = true)]
public Dictionary? InputAttributes { get; set; }
private FieldIdentifier _fieldIdentifier;
protected override void OnInitialized()
{
_fieldIdentifier = FieldIdentifier.Create(For);
EditContext.OnValidationStateChanged += HandleValidationStateChanged;
}
private void HandleValidationStateChanged(object o, ValidationStateChangedEventArgs args) => StateHasChanged();
public void Dispose()
{
EditContext.OnValidationStateChanged -= HandleValidationStateChanged;
}
}