Wie ist die richtige Möglichkeit, ein Kontrollkästchen zu binden und ein Ereignisfeuer zu haben, wenn sich dieses Kontrollkästchen ändert? Ich habe ein paar verschiedene Arten ausprobiert, die alle nicht genau so funktionieren, wie ich es mir erhofft hatte. Beachten Sie das Kontrollkästchen in einer Komponente. < /P>
Code: Select all
@code{
[Parameter]
public bool IsChecked { get; set; } = true;
private void CheckboxChanged()
{
Console.WriteLine($"Checkbox changed {IsChecked}");
}
}
Wenn die Seite geladen wird, liest sie den Wert, der an IsShEcked angegeben ist, und wenn das Kontrollkästchen überprüft wird, feuert die Methode aus. Der Wert für ISSCHECKED wird jedoch nicht aktualisiert. Wenn dann der Bindungswert für ISSCECKED außerhalb der Komponente geändert wird, wird die Methode nicht abgefeuert, aber der Wert für ISSCECKED wird geändert (sollte beachten, dass die UI korrekt aktualisiert wird).
Ich dachte
Dies ergibt jedoch einen Fehler, der onchange zwei oder mehr
verwendet wird
Wenn der Benutzer auf das Kontrollkästchen klickt, ist es jedoch mit der Methode abgefeuert. IsChecked befindet sich am alten Wert (ich gehe davon aus, dass der Klick vor der Bindung stattfindet). Wenn dann der Wert für Isschecked außerhalb der Komponente geändert wird, feuert die Methode erneut nicht aus.
Was ist der richtige Weg?