/// <summary> /// Stack에 현재 올라가있는 UserControl의 Visibility를 Collapsed 시키고, Stack에 담긴 UserControl을 Pop 시킨다. /// </summary> public void PopCustomCtrl() { CustomControlModel userCtrl = customCtrlStack.Peek(); if (userCtrl != null) { SetCustomCtrlVisible(userCtrl, Visibility.Collapsed); customCtrlStack.Pop(); return; } }
// UserControl의 Visibility를 설정. private void SetCustomCtrlVisible(CustomControlModel customCtrlModel, Visibility visibility) { customCtrlModel.Visibility = visibility; }
/// <summary> /// UserControl을 미리 정의해둔 Stack에 Push 한 후, Visibility를 Visible로 설정. /// </summary> /// <param name="customCtrl"></param> public void PushCustomCtrl(CustomControlModel customCtrl) { customCtrlStack.Push(customCtrl); SetCustomCtrlVisible(customCtrl, Visibility.Visible); }
/// <summary> /// 초기에 UserControl들을 설정해주기 위한 메서드. /// 관리하고자 하는 UserControl과 UserControl의 Type에 대한 정보를 인자로 넘겨 설정. /// /// [HOW TO USE] : MainWindow.xaml에 만든 UserControl들을 부른 후, MainWindow.xaml.cs에서 설정해 줄 것. /// </summary> /// <param name="userCtrl", 설정하고자 하는 UserControl></param> /// <param name="customCtrlType", 설정하고자 하는 UserControl의 Type></param> public void SetCustomCtrl(CustomControlModel userCtrl, CustomControlType customCtrlType) { userCtrl.userCtrlType = customCtrlType; customCtrlItems.Add(userCtrl); userCtrl.Visibility = Visibility.Collapsed; }