Check the implementations that I linked above. You can create a custom validator and set all existing emails as a property and then check against if that property contains the component value. Something like:
namespace MyApp
{
public class UniqueEmailValidator : Radzen.Blazor.ValidatorBase
{
[Parameter]
public override string Text { get; set; } = "Email exists";
protected override bool Validate(IRadzenFormComponent component)
{
var email = component.GetValue();
return email != null && Emails != null && !Emails.Contains(email.ToString());
}
[Parameter]
public IEnumerable<string> Emails { get; set; }
}
}
<RadzenTextBox @bind-Value=@email Name="EmailTextBox" />
<UniqueEmailValidator Component="EmailTextBox" Emails=@emails />
@code {
IEnumerable<string> emails = GetExistingEmails();
}