WPF MVVM 패턴을 이용한 navigation시 AssociatedObject null 체크

안녕하세요. 항상 도움을 많이 받고 있습니다
frame을 이용하여 버튼 클릭시 navigation되는 로직을 짜고 있습니다.
초기값을 설정하지 않고 그냥 네비게이션 할때는 괜찮은데 뷰모델에서 프로그램 실행시에 최초로 보여질 화면을 초기값으로 주면
System.NullReferenceException: ‘Object reference not set to an instance of an object.’ 에러를 뱉습니다

Behavior.cs

using Microsoft.Xaml.Behaviors;
using System;
using System.Windows;
using System.Windows.Controls;


   public class FrameBehavior : Behavior<Frame>
    {
        private bool _isWork;

        protected override void OnAttached()
        {
            
            AssociatedObject.Navigating += AssociatedObject_Navigating;
            
            AssociatedObject.Navigated += AssociatedObject_Navigated;
        }
       
        private void AssociatedObject_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
        {
            _isWork = true;
            
            NavigationSource = e.Uri.ToString();
            _isWork = false;
          
            if (AssociatedObject.Content is Page pageContent
                && pageContent.DataContext is INavigationAware navigationAware)
            {
                navigationAware.OnNavigated(sender, e);
            }
        }
      
        private void AssociatedObject_Navigating(object sender, System.Windows.Navigation.NavigatingCancelEventArgs e)
        {
            //네비게이션 시작전 상황을 뷰모델에 알려주기
            if (AssociatedObject.Content is Page pageContent
                && pageContent.DataContext is INavigationAware navigationAware)
            {
                navigationAware?.OnNavigating(sender, e);
            }
        }

        protected override void OnDetaching()
        {
            AssociatedObject.Navigating -= AssociatedObject_Navigating;
            AssociatedObject.Navigated -= AssociatedObject_Navigated;
        }

        public string NavigationSource
        {
            get { return (string)GetValue(NavigationSourceProperty); }
            set { SetValue(NavigationSourceProperty, value); }
        }

        /// <summary>
        /// NavigationSource DP
        /// </summary>
        public static readonly DependencyProperty NavigationSourceProperty =
            DependencyProperty.Register(nameof(NavigationSource), typeof(string), typeof(FrameBehavior), new PropertyMetadata(null, NavigationSourceChanged));

        
        private static void NavigationSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var behavior = (FrameBehavior)d;
            if (behavior._isWork)
            {
                return;
            }
            behavior.Navigate();
        }
        /// <summary>
        /// 네비게이트
        /// </summary>
        private void Navigate()
        {
            switch (NavigationSource)
            {
            
                default:
                    //navigate
                    AssociatedObject.Navigate(new Uri(NavigationSource, UriKind.RelativeOrAbsolute));
                    break;
            }
        }
    }
}

MainWindowViewModel

  private void init()
        {
            NavigationSource = "View/Dashboard.xaml"; //실행되자마자 로드되어야할 뷰
            NavigateCommand = new RelayCommand<string>(OnNavigate);
        }
 private void OnNavigate(string pageUri)
        {
            NavigationSource = pageUri;
        }

 private string _navaigationSource;

       public string NavigationSource
        {
            get => _navaigationSource;
            set => SetProperty(ref _navaigationSource, value);
        }

public ICommand NavigateCommand { get; set; }

 public MainWindowViewModel()
        {
            
            init();
        }

a

``초기값을 주지않고 그냥 navigation할때```
화면 캡처 2023-02-06 102334