public UserProfileWindow(DefaultThemePageMasterCommandsViewModel masterCommands, ISessionManager session, IPresentationManager presentationManager, IImageManager imageManager, IApiClient apiClient, DisplayPreferences displayPreferences, ListPageConfig options)
        {
            _session = session;
            _options = options;
            _displayPreferencesViewModel = new DisplayPreferencesViewModel(displayPreferences, presentationManager);
            _previousFocus = "";

            InitializeComponent();

            Loaded += UserProfileWindow_Loaded;
            Unloaded += UserProfileWindow_Unloaded;
            masterCommands.PageNavigated += masterCommands_PageNavigated;
            BtnClose.Click += BtnClose_Click;

            //Display preferences
            RadioList.Click += radioList_Click;
            RadioPoster.Click += radioPoster_Click;
            RadioThumbstrip.Click += radioThumbstrip_Click;
            RadioPosterStrip.Click += radioPosterStrip_Click;

            //Sort preferences
            RadioSortAscending.Click += RadioSortAscending_Click;
            RadioSortDescending.Click += RadioSortDescending_Click;

            //Focus tracking
            BtnClose.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            HomeButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            DisplayPreferencesButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            SortButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            SettingsButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            LogoutButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            ShutdownAppButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            SleepButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RestartButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            ShutdownButton.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;

            RadioList.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RadioPosterStrip.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RadioPoster.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RadioThumbstrip.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;

            RadioSortAscending.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            RadioSortDescending.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;
            CheckBoxSortRemember.IsKeyboardFocusedChanged += Button_IsKeyboardFocusedChanged;

            ContentGrid.DataContext = new DefaultThemeUserDtoViewModel(masterCommands, apiClient, imageManager, session)
            {
                User = session.CurrentUser,
                ImageHeight = 54
            };

            MainGrid.DataContext = this;
            CheckBoxSortRemember.DataContext = _displayPreferencesViewModel;

            if (displayPreferences != null)
            {
                //Always set to false to begin with in case the user is just doing a quick sort and doesn't want it saved.
                _displayPreferencesViewModel.RememberSorting = false;
            }
        }
        public ViewWindow(DisplayPreferencesViewModel displayPreferencesViewModel, ListPageConfig options)
        {
            _displayPreferencesViewModel = displayPreferencesViewModel;
            _options = options;
            InitializeComponent();

            DataContext = this;

            btnClose.Click += btnClose_Click;
            radioList.Click += radioList_Click;
            radioPoster.Click += radioPoster_Click;
            radioThumbstrip.Click += radioThumbstrip_Click;
            radioPosterStrip.Click += radioPosterStrip_Click;
            Loaded += SortMenuPage_Loaded;
        }
        public SortWindow(DisplayPreferencesViewModel displayPreferencesViewModel, Dictionary<string, string> sortOptions)
        {
            _displayPreferencesViewModel = displayPreferencesViewModel;
            InitializeComponent();

            btnClose.Click += btnClose_Click;

            Loaded += SortMenuPage_Loaded;

            _sortOptions = sortOptions;

            RadioAscending.Click += RadioAscending_Click;
            RadioDescending.Click += RadioDescending_Click;

            DataContext = this;
            ChkRemember.DataContext = displayPreferencesViewModel;
        }
        public void ShowDisplayPreferencesMenu()
        {
            var viewModel = new DisplayPreferencesViewModel(_displayPreferences, _presentationManager);

            var menu = new ViewWindow(viewModel, _options);

            menu.ShowModal(this.GetWindow());

            viewModel.Save();
        }
        void BtnSort_Click(object sender, RoutedEventArgs e)
        {
            var viewModel = new DisplayPreferencesViewModel(_displayPreferences, _presentationManager);

            var menu = new SortWindow(viewModel, _options.SortOptions);

            menu.ShowModal(this.GetWindow());

            viewModel.Save();
        }