Является ли это правильным способом навигации по странице внутри фрейма, который также находится в другом фрейме страницы? (WPF) - PullRequest
3 голосов
/ 04 марта 2020

Таким образом, на этом изображении, которое содержит рамку, в которой должны отображаться страницы (страницы с текущим отображением являются текущим источником родительской страницы)

enter image description here

и я нашел этот репозиторий , просто для использования службы навигации, однако, он использует только RootFrame. поэтому я сделал некоторые изменения

// INavigationService.cs
interface INavigationService
{
    string CurrentPageKey { get; }

    void GoBack();
    void NavigateTo(string frame, string pageKey);
    void NavigateTo(string frame, string pageKey, object parameter);
}

// FrameNavigationService.cs
public virtual void NavigateTo(string frameName, string key, object parameter)
{
    ...

    if(GetDescendantFromName(Application.Current.MainWindow, frameName) is Frame frame)

    ...
}

и использовал этот код:

// MainViewModel
public RelayCommand LoadPage1Command 
            => loadPage1Command ?? (loadPage1Command = new RelayCommand(() => navigationService.NavigateTo("Page1")));

// Page1ViewModel
public RelayCommand LoadedCommand
            => loadedCommand ?? (loadedCommand = new RelayCommand(() => navigationService.NavigateTo("Page1_Frame", "Page1_1")));

Я не могу сказать, является ли это способом навигации по странице внутри фрейма. Существуют ли какие-либо шаблоны проектирования поведения, которые я мог бы использовать в качестве альтернативы этому, если измененный код плохой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...