WPFのMainWindow内のFrameのPageを切り替える方法についての質問です。
MainWindowから操作する場合はFrame.Sourceを変えるだけで済むのですが、表示したPageから自分のMainWindowのFrame.Sourceを変更する方法がわかりません。
わかる方がいればご教授をお願いいたします。
そうですね。書いてください。その場合は何かフレームワークを使うようお勧めされると思います。
回答がありませんね。Prism を使い、Region で切り替えるのが正攻法だと思います。
https://blog.okazuki.jp/category/Prism?page=1412684894
しかし、初心者にはなかなかハードルが高いのも事実です。
簡単に行いたいのであれば、メインウィンドウにページ切り替えの API を実装し、App.Current.MainWindow でメインウィンドウを取得して API を呼び出すのが手っ取り早いかと思います。
var mainWindow = (WpfApp1.MainWindow)App.Current.MainWindow;
mainWindow.Navigate(new Uri("Page2.xaml", UriKind.Relative)); // Navigate メソッドはたとえば次のように自分で作る
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public void Navigate(Uri uri)
{
this.frame1.Navigate(uri);
}
}