У меня есть две страницы (MainWindow и Client), и я пытаюсь использовать NavigationService для навигации между своими страницами.
Когда я перехожу от MainWindow к клиенту, он работает, но когда я пытаюсь перейти от клиента к MainWindow, это дает мне исключение:
Невозможно преобразовать объект типа WpfApplication1.MainWindow в WpfApplication1.Client
Это мое главное окно
<Grid>
<Button HorizontalAlignment="Center"
VerticalAlignment="Center"
Click="Navigate_Click">Navigate</Button>
</Grid>
private void Navigate_Click(object sender, RoutedEventArgs e)
{
if (NavigationService == null)
{
return;
}
NavigationService.Navigate(new Uri("Client.xaml", UriKind.Relative), "Hi from calling window!");
NavigationService.LoadCompleted += NavigationService_LoadCompleted;
}
private void NavigationService_LoadCompleted(object sender, NavigationEventArgs e)
{
((Client)e.Content).MessageFromCallingWindow = (string)e.ExtraData;
}
И клиент
<Grid>
<StackPanel>
<TextBlock VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="{Binding MessageFromCallingWindow}" />
<Button Click="OnClick">Go back</Button>
</StackPanel>
</Grid>
public static DependencyProperty MessageFromCallingWindowProperty = DependencyProperty.Register("MessageFromCallingWindow", typeof(string), typeof(Client));
public string MessageFromCallingWindow
{
get { return (string)GetValue(MessageFromCallingWindowProperty); }
set { SetValue(MessageFromCallingWindowProperty, value); }
}
private void OnClick(object sender, RoutedEventArgs e)
{
if (NavigationService != null)
{
NavigationService.Navigate(new Uri("MainWindow.xaml", UriKind.Relative), "returning hello from client");
}
}
Я также пробовал NaviugationService.GoBack()
, но это дает то же исключение!
Любая подсказка?