Это еще один ответ:
@ * Примечание. В этом фрагменте кода используется флажок для создания двусторонней привязки данных: от переменной с именем ticked, определенной в блоке @code ниже, до ввода флажок. Изначально мы устанавливаем для него значение false, поэтому при запуске кода вы заметите, что флажок не установлен. Это было односторонним связыванием.
Чтобы создать привязку элемента управления к переменной, вы должны добавить директиву @onchange с обработчиком событий, который получает новое значение из системы и обновляет отмеченную переменную.
По мере того как вы Возможно, вы заметили, что в отличие от большинства элементов ввода, которые связаны с их атрибутом значения, флажок ввода связан с атрибутом * checked **
Атрибут value хранит значение, которое должно быть отправлено в базу данных. @
<input type="checkbox" value="test" checked="@ticked" @onchange="@((args) => { ticked = (bool)
args.Value; Console.WriteLine(ticked.ToString());} )" />
@code {
bool ticked = false;
}
Конечно, вы можете использовать директиву @bind для создания двусторонней привязки данных, например:
<input type="checkbox" value="test" @bind="@ticked" />
Обратите внимание, что вы не можете использовать директиву @onchange с директива @bind, потому что директива @bind является директивой компилятора, сообщающей компилятору создать привязку, как я это делал вручную при первом вводе, и, конечно, вам не разрешено иметь два атрибута @onchange.
note : вы не можете сделать это: @onchange="@function1()"
Значение, присвоенное директиве @onchange, должно быть лямбда-выражением, например: * 10 18 *
@onchange="@(() => function1)"
Вы должны использовать круглые скобки, только если вы собираетесь передать значение в function1, например так: @onchange="@(() => function1 (true))"
Кроме того, @BoolChecker()
должно быть значение, присвоенное атрибуту. Вы не можете использовать это так ... Вы можете сделать:
@onchange="@(() => BoolChecker)"