I am using event to pass data from one partial view to another in Blazor.
Problem: the dispose is not working and every time when page destroyed and re rendered it attaches the same event. And when ever I invoke event it invokes multiple time(that number of time when partial view destroyed and recreated)
Event definition code with invoke method
public event Action<long,long,bool,bool> MyEvent;
public void InVokeMyEvent(long data1,
        bool data2,long data3,bool data4) {
        MyEvent?.Invoke(data1,data2,data3, data4);
    } 
The function definition
async Task MyFunction(long data1,
        long data2,
        bool data3,
        bool data4)
{}
I am registering the event in OnInitializedAsync function as following.
protected override async Task OnInitializedAsync()
{
    RGEState.MyEvent+= async (long data1,
       long data2,
       bool data3,
       bool data4) =>
   await MyFunction(data1,
        data2,
        data3,
        data4);
    await base.OnInitializedAsync();
}
Now to detach event I am doing following code in page after implementing IDisposable.
public void Dispose()
{
    RGEState.MyEvent -= async (long data1,
       long data2,
       bool data3,
       bool data4) =>
   await MyFunction(data1,
        data2,
        data3,
        data4);
}
 
     
    