public ThemeSelectorViewModel(ISettingsHandler settingsHandler)
        {
            this.settingsHandler = settingsHandler;
            if (settingsHandler == null)
            {
                throw new ArgumentNullException(nameof(settingsHandler));
            }

            foreach (MetroThemeBaseColour themeBaseColour in Enum.GetValues(typeof(MetroThemeBaseColour)))
            {
                var menuItem = new MenuItem(() => settingsHandler.Settings.MetroThemeBaseColour = themeBaseColour)
                {
                    Name = themeBaseColour.ToString().ToFriendlyString()
                };

                var savedBaseColour = settingsHandler.Settings.MetroThemeBaseColour.ToString();
                menuItem.IsChecked = savedBaseColour.IsEqualTo(menuItem.Name.Replace(" ", string.Empty));
                BaseThemes.Add(menuItem);
            }

            foreach (MetroThemeAccentColour themeAccentColour in Enum.GetValues(typeof(MetroThemeAccentColour)))
            {
                var menuItem = new MenuItem(() => settingsHandler.Settings.MetroThemeAccentColour = themeAccentColour)
                {
                    Name = themeAccentColour.ToString().ToFriendlyString(),
                };

                var savedAccecentColour = settingsHandler.Settings.MetroThemeAccentColour.ToString();
                menuItem.IsChecked = savedAccecentColour.IsEqualTo(menuItem.Name);
                AccentColours.Add(menuItem);
            }
        }
 private void SettingsOnPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == nameof(settingsHandler.Settings.MetroThemeAccentColour))
     {
         AccentColours.ForEach(x => x.IsChecked = false);
         var savedAccentColour = settingsHandler.Settings.MetroThemeAccentColour.ToString();
         var menuItem          = AccentColours.FirstOrDefault(x => x.Name.ReverseFriendlyString().IsEqualTo(savedAccentColour));
         if (menuItem != null)
         {
             menuItem.IsChecked = true;
         }
     }
     else if (e.PropertyName == nameof(settingsHandler.Settings.MetroThemeBaseColour))
     {
         BaseThemes.ForEach(x => x.IsChecked = false);
         var savedBaseColour = settingsHandler.Settings.MetroThemeBaseColour.ToString();
         var menuItem        = BaseThemes.FirstOrDefault(x => x.Name.ReverseFriendlyString().IsEqualTo(savedBaseColour));
         if (menuItem != null)
         {
             menuItem.IsChecked = true;
         }
     }
 }