2 つのページ (MainWindow とクライアント) があり、NavigationService を使用してページ間を移動しようとしています。
MainWindow から Client に移動すると機能しますが、Client から 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()
ましたが、同じ例外が発生します。
どんな手掛かり ?