Я изучаю учебник WPF с веб-сайта Microsoft, который выглядит следующим образом:
Я получаю следующую ошибку из моего кода:
private void Button_Click(object sender, RoutedEventArgs e)
{
//View Expense Report
ExpenseReportPage expenseReportPage = new ExpenseReportPage(); //Line 1
this.NavigationService.Navigate(expenseReportPage); // Line 2
}
Строка 2 в приведенном выше коде дает следующую ошибку для NavigationService:
'invalid-global-code' does not contain a definition for 'NavigationService' and no accessible extention method 'NavigationService' accepting the first argument of type '' could be found (are you missing a using directive or an assembly reference ?)
Я добавил использование System.Windows.Navigation; Я думаю, что проблема связана с «этой» частью this.NavigationService.Navigate(expenseReportPage);
Вы изменили главное окно на окно навигации? Окно по умолчанию не имеет свойства навигации.
Да, я изменил главное окно на навигационное окно. это все еще не работает. он не улавливает «это» при обращении к NavigationService.





Измените элемент Window на элемент NavigationWindow или добавьте элемент Frame в свое окно и получите доступ к его свойству NavigationService:
frame.NavigationService.Navigate(expenseReportPage); // Line 2
XAML:
<Window ...>
<Frame x:Name = "frame" />
</Window>
Я изменил элемент Window на NavigationWindow, как указано в руководстве, но он все равно не работает. Я не могу добавить атрибут Frame к элементу NavigationWindow, так как этот параметр недоступен. Пожалуйста, предложите.
ИСПРАВЛЕНО: у меня был блок this.NavigationService... вне класса NavigationWindow в коде программной части. Я переместил блок внутри этого класса, и это сработало.
Вы можете добавить элемент Frame в окно, как я продемонстрировал в своем ответе. Если у вас есть NavigationWindow, вы не должны добавлять Frame.
@sherazyousaf: Если ваша проблема решена, вы должны либо принять ответ, либо удалить вопрос.
Не вижу ошибки в вашем вопросе.