private void Register_Click(object sender, RoutedEventArgs e)
        {
            this.IsEnabled = false;

            mChildManager.TryToShow <RegisterWindow>(new EventHandler((o, ev) =>
            {
                this.Dispatcher.Invoke(() => { this.IsEnabled = true; });
            }), mClient);
        }
        private void AddStu_Click(object sender, RoutedEventArgs e)
        {
            //TODO : 계정 권한에 따라 접근을 거부하는 코드 필요.
            string accType = ParentWindow.Client.AccountType;

            if (!AuthorityChecker.CheckAuthority(accType, mCurrentGrade, mCurrentClass, AccessType.Edit, ObjectToAccess.StudentList))
            {
                MessageBox.Show("데이터를 수정할 권한이 없습니다.\n\n특정 학급의 학생 명단을 수정하려면 그 학급의 담임이여야 합니다.",
                                "권한 없음", MessageBoxButton.OK, MessageBoxImage.Error);

                return;
            }

            string[] existNumbers;
            if (IsTableEmpty)
            {
                existNumbers = new string[] { };
            }
            else
            {
                List <string> numsList = new List <string>();
                foreach (DataRow row in mTable.Rows)
                {
                    numsList.Add(row["번호"].ToString());
                }

                existNumbers = numsList.ToArray();
            }

            ParentWindow.Dispatcher.Invoke(() => mChildManager.TryToShow <AddStudentsWindow>((EventHandler)((o, ev) =>
            {
                this.Dispatcher.Invoke(() => this.IsEnabled = true);
                ParentWindow.Dispatcher.Invoke(() => ParentWindow.IsEnabled = true);
            }), this, existNumbers, mCurrentGrade, mCurrentClass));

            this.IsEnabled = false;
            ParentWindow.Dispatcher.Invoke(() => ParentWindow.IsEnabled = false);
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                mSetting      = ProgramSetting.Load();
                mChildManager = new ChildWindowManager(this);

                if ((bool)mSetting["RememberID"])
                {
                    SaveIDCheck.IsChecked = true;
                    IDText.Text           = (mSetting["ID"] as string) ?? "";
                }

                mChildManager.TryToShow <LoadingWindow>(new EventHandler((o, ev) =>
                {
                    this.Dispatcher.Invoke(() => { SetState(); });
                }), "서버에 연결 중입니다...", (WaitCallback)Connect);
            }
            catch (Exception ex)
            {
                MessageBox.Show($"로그인 준비를 하는 과정에서 오류가 발생하였습니다.\n{ex.Message}");
            }
        }