private async Task DoNavigate(PageNavigationTargetBase target)
 {
     if (target == null) throw new ArgumentNullException(nameof(target));
     if (target is BoardInfoNavigationTarget)
     {
         await NavigateToBoardInfo((BoardInfoNavigationTarget)target);
         return;
     }
     if (target is BoardPageNavigationTarget)
     {
         await NavigateToBoardPage((BoardPageNavigationTarget)target);
         return;
     }
     if (target is BoardCatalogNavigationTarget)
     {
         await NavigateToBoardCatalog((BoardCatalogNavigationTarget)target);
         return;
     }
     if (target is ThreadNavigationTarget)
     {
         await NavigateToThread((ThreadNavigationTarget)target);
         return;
     }
     if (target is MediaNavigationTarget)
     {
         await DoNavigateToMedia((MediaNavigationTarget)target);
         return;
     }
     if (target is PostingNavigationTarget)
     {
         await NavigateToPosting((PostingNavigationTarget)target);
         return;
     }
     throw new ArgumentException($"Неизвестный тип цели навигации \"{target.GetType().FullName}\"", nameof(target));
 }
 /// <summary>
 /// Произвести навигацию.
 /// </summary>
 /// <param name="target"></param>
 /// <param name="reportError">Показать ошибку.</param>
 public void Navigate(PageNavigationTargetBase target, bool reportError = true)
 {
     AppHelpers.DispatchAction(async () =>
     {
         await DoNavigate(target);
     }, reportError, 0);
 }