我根據教程在我的 blazor 服務器端應用程式中創建了一個選項卡控制元件。該控制元件作業正常,但是我希望能夠知道活動頁面何時更改。因此,我在代碼中添加了一個事件:
internal void ActivatePage(TabPage page)
{
OnTabSelectionChanged();
ActivePage = page;
}
public delegate void TabSelectionChangedEventHandler(object source, EventArgs args);
public event TabSelectionChangedEventHandler TabSelectionChanged;
protected virtual void OnTabSelectionChanged()
{
TabSelectionChanged?.Invoke(this, EventArgs.Empty);
}
現在我想在使用控制元件的 blazor 組件中執行以下操作:
<TabControl @TabSelectionChanged="MyFunction">
<TabPage Text="tab #1">
<!-- content -->
</TabPage>
<TabPage Text="tab #2">
<!-- content -->
</TabPage>
<TabPage Text="tab #3">
<!-- content -->
</TabPage>
</TabControl>
一個人將如何實作這一目標?
uj5u.com熱心網友回復:
對于我上面的案例,EventCallback 屬性如何?
我在想與你所擁有的并沒有太大的不同
@code{
[Parameter]
public EventCallback<TabPage> TabPageActivated { get; set; }
internal async Task ActivatePage(TabPage page)
{
ActivePage = page;
await TabPageActivated.InvokeAsyc(page);
}
}
并在使用控制元件的 blazor 中執行以下操作:
<TabControl @TabPageActivated="MyFunction">
<TabPage Text="tab #1">
<!-- content -->
</TabPage>
<TabPage Text="tab #2">
<!-- content -->
</TabPage>
<TabPage Text="tab #3">
<!-- content -->
</TabPage>
</TabControl>
@code{
private async Task MyFunction(TabPage t){
...
}
}
如果你不想要引數 TabPage,那么更像:
public EventCallback TabPageActivated { get; set; }
...
await TabPageActivated.InvokeAsyc();
...
private async Task MyFunction(){
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435135.html
上一篇:ASP.NETCore中的<aasp-page="linkhere">和<ahref="linkhere">有什么區別?
