앞서 MenuBar1.xaml과 MenuBar2.xaml에서 배치한 Button인 Menu1부터 6에 대응할 Page1~6.xaml을 추가했다.
페이지가 전환된 결과를 확실히 구분하기 위해 각 페이지들의 Background Color를 다양하게 지정했다.
ex)Page1.xaml의 경우...
BaseViewModel을 상속받는다.
Command의 getter/setter를 작성한다.
MainWindow.xaml.cs(코드 비하인드)에서 GetInstance()를 수정한다.
- https://velog.io/@yu_oolong/C-WPF-Button을-눌러-Page-전환하기 의 MainWindow.xaml.cs에서 수정됐다.
using PackagingSystem.Commands;
using PackagingSystem.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
namespace PracticeProject.ViewModels
{
internal class MenuBar1PageModel : BaseViewModel
{
public ICommand Menu1Command { get; set; }
public ICommand Menu2Command { get; set; }
public ICommand Menu3Command { get; set; }
public MenuBar1PageModel()
{
Menu1Command = new RelayCommand(SelectMenu1);
Menu2Command = new RelayCommand(SelectMenu2);
Menu3Command = new RelayCommand(SelectMenu3);
}
private void SelectMenu1()
{
MainWindow mainWindow = MainWindow.GetInstance();
if (mainWindow != null)
{
mainWindow.Contents.Source = new Uri("Page1.xaml", UriKind.Relative);
}
}
private void SelectMenu2()
{
MainWindow mainWindow = MainWindow.GetInstance();
if (mainWindow != null)
{
mainWindow.Contents.Source = new Uri("Page2.xaml", UriKind.Relative);
}
}
private void SelectMenu3()
{
MainWindow mainWindow = MainWindow.GetInstance();
if (mainWindow != null)
{
mainWindow.Contents.Source = new Uri("Page3.xaml", UriKind.Relative);
}
}
}
}
이 중에 제일 모르겠는 것이 바로 MainWindow.xaml.cs(코드 비하인드)에서 작성한 GetInstance 부분...구글링을 어떻게 해야할지도 모르겠다.
이 중에 제일 모르겠는 것이 바로 MainWindow.xaml.cs(코드 비하인드)에서 작성한 GetInstance 부분...구글링을 어떻게 해야할지도 모르겠다. ===> "c# 싱글턴 패턴" 으로 검색