Bawię się Blazorem i chcę napisać generator haseł
Kod:
<h6>Użyj cyfr
<input type="checkbox" bind="@_Numbers" /></h6>
<h6>Użyj małych liter
<input type="checkbox" bind="@_Lowercase" /></h6>
<h6>Użyj dużych liter
<input type="checkbox" bind="@_Uppercase" /></h6>
<button class="btn btn-primary" onclick="@GeneratePassword">Generuj hasła</button>
@foreach(var pass in Passwords)
{
<h4>@pass</h4>
}
@functions {
IEnumerable<string> Passwords = new List<string>();
private bool _Numbers { get; set; } = true;
private bool _Uppercase { get; set; } = true;
private bool _Lowercase { get; set; } = true;
void GeneratePassword()
{
Passwords = PasswordGenerator.GetPasswords( _Numbers, _Lowercase, _Uppercase);
}
}
Generalnie działa mi to PRAWIE tak jak chciałem. Problem jest przy zmianie checkboxów, jeśli wcześniej kliknęliśmy button i wygenerowaliśmy hasła. Otóż przy zmianie checkboxa, zostają wygenerowane nowe hasła (samoczynnie, bez klikania w button). Nie byłoby jeszcze tragedii gdyby do metody generowania hasła były przekazywane parametry zmienionych własnie checkboxów. Inaczej mówiąc włączanie/wyłączanie checkboxów generuje nowe hasła i odświeza widok, ale zmiany w checkboxach nie są uwzględniane.
Pytanie: jak wyłączyć to samoodświeżanie, bądź spowodować by pobierało każdorazowo wartości z checkboxów.