ame*_*lon 5 c# asp.net-core blazor
我有一个以回调作为参数的组件。我只想在某个条件成立时向它传递回调。Callback.HasDelegate我可以传递给它什么会导致检查失败
就像是
<EntityActionMenu DeleteCallback="@(Item.Id == 0 ? null : EventCallback.Factory.Create(this, Delete))"></EntityActionMenu>
Run Code Online (Sandbox Code Playgroud)
或者
<EntityActionMenu SaveCallback="@Save" DeleteCallback="@(Item.Id == 0 ? EventCallback.Factory.Create(this, Task<null>) : EventCallback.Factory.Create(this, Delete))" ></EntityActionMenu>
Run Code Online (Sandbox Code Playgroud)
编辑
这是接收组件
@if (DeleteCallback.HasDelegate)
{
<MatButton Raised="true" OnClick="@(() => DeleteCallback.InvokeAsync(""))" Class="warn">Delete</MatButton>
}
@code {
[Parameter] public EventCallback DeleteCallback { get; set; }
protected override void OnInitialized()
{
System.Diagnostics.Debug.WriteLine(DeleteCallback.HasDelegate);
}
protected override void OnParametersSet()
{
System.Diagnostics.Debug.WriteLine(DeleteCallback.HasDelegate);
}
Run Code Online (Sandbox Code Playgroud)
}
为什么不在回调方法中检查 id 呢?
假设以下代码EntityActionMenu:
[Parameter]
public EventCallback<int> DeleteCallback { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
<EntityActionMenu DeleteCallback="@Delete"></EntityActionMenu>
@code {
protected void Delete(int id)
{
if (id == 0) return;
/* your code */
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3147 次 |
| 最近记录: |