Blazor:Razor组件@bind-
.NET 5/Blazor/VS 2019 你如何处理@bind-这个什么都不做的东西 例如:Blazor:Razor组件@bind-,razor,blazor,Razor,Blazor,.NET 5/Blazor/VS 2019 你如何处理@bind-这个什么都不做的东西 例如: <Switch TValue="bool" @bind-Check="@IsFoo"></Switch> 或 IsFoo总是错误的 没有编译器错误或警告,运行时结果为foo=False 使用BlazorMicrosoft.AspNetCore.Mvc.Razor.RuntimeCompilation无法工作。还有其他想法吗?要实现
<Switch TValue="bool" @bind-Check="@IsFoo"></Switch>
或
IsFoo总是错误的
没有编译器错误或警告,运行时结果为foo=False
使用BlazorMicrosoft.AspNetCore.Mvc.Razor.RuntimeCompilation无法工作。还有其他想法吗?要实现双向绑定,您必须使用
EventCallback
。回调的名称应与绑定参数匹配,并附加Changed
在本例中,我使用Value
和ValueChanged
Switch.razor
<div class="custom-control custom-switch">
<input @bind="@Value"
type="checkbox"
class="custom-control-input"
id="customSwitch1"/>
<label class="custom-control-label"
for="customSwitch1">
@Label
</label>
</div>
@code {
bool switchValue = false;
[Parameter]
public bool Value
{
get => switchValue;
set
{
if (switchValue == value) return;
switchValue = value;
ValueChanged.InvokeAsync(value);
}
}
[Parameter]
public EventCallback<bool> ValueChanged { get; set; }
[Parameter]
public string Label { get; set; }
}
@标签
@代码{
bool switchValue=false;
[参数]
公共布尔值
{
get=>switchValue;
设置
{
if(switchValue==value)返回;
开关值=开关值;
ValueChanged.InvokeAsync(值);
}
}
[参数]
public EventCallback ValueChanged{get;set;}
[参数]
公共字符串标签{get;set;}
}
用法:
<Switch @bind-Value="@myValue" Label="Toggle this switch element"/>
这就是我正在做的-检查而不是值。选中了,是,仅在按预期选中绑定时有效。只有在我的VS 2019解决方案中,我才能毫无错误地绑定任何东西。我们必须深入研究这个项目。奇怪。谢谢你的意见@多米尼克·科斯瓦尔德:是的,看起来很奇怪。但是,它不会运行。您将得到一个运行时错误。