public static void OnBeforeNavigate(CanNavigateHandler onBeforeNavigate) { //We only keep track of one active BeforeNavigate event foreach (Delegate d in Router.onBeforeNavigate.GetInvocationList()) { Router.onBeforeNavigate -= (CanNavigateHandler)d; } if (onBeforeNavigate is null) { onBeforeNavigate = (a, b) => true; } Router.onBeforeNavigate += onBeforeNavigate; }
private static CanNavigateHandler _beforeNavigate; // 2020-06-16 DWR: We previously used an event for this but only allowed a single delegate to bind to it, so there is no need for it to be multi-dispatch and so now it's just a field instead of an event public static void OnBeforeNavigate(CanNavigateHandler onBeforeNavigate) => _beforeNavigate = onBeforeNavigate;