Files
HFUTCourseSimulation/HFUTCourseSimulation/Dialog/EditCourse.xaml.cs

91 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace HFUTCourseSimulation.Dialog {
/// <summary>
/// Interaction logic for EditCourse.xaml
/// </summary>
public partial class EditCourse : Window {
public EditCourse() {
InitializeComponent();
}
public Kernel.Data.Ui.Course CurrentCourse { get; set; }
private void uiMainWindow_Loaded(object sender, RoutedEventArgs e) {
this.DataContext = CurrentCourse;
}
private void uiMainWindow_Closed(object sender, EventArgs e) {
this.DataContext = null;
}
private void uiSchedulesList_MouseDoubleClick(object sender, MouseButtonEventArgs e) {
// It just an alias to edit
uiCtxMenuEditSchedule_Click(sender, e);
}
private void uiCtxMenuNewSchedule_Click(object sender, RoutedEventArgs e) {
// Create new item and order user edit it
var item = new Kernel.Data.Storage.Schedule();
var dialog = new EditSchedule();
dialog.CurrentSchedule = new Kernel.Data.Ui.Schedule(item);
dialog.ShowDialog();
// Then insert or append it into list
var idx = uiSchedulesList.SelectedIndex;
if (idx < 0) {
// No selection, append.
CurrentCourse.Schedules.Add(dialog.CurrentSchedule);
} else {
// Has selection, insert
CurrentCourse.Schedules.Insert(idx, dialog.CurrentSchedule);
}
}
private void uiCtxMenuEditSchedule_Click(object sender, RoutedEventArgs e) {
var idx = uiSchedulesList.SelectedIndex;
if (idx < 0) return;
var dialog = new EditSchedule();
dialog.CurrentSchedule = CurrentCourse.Schedules[idx];
dialog.ShowDialog();
}
private void uiCtxMenuDeleteSchedule_Click(object sender, RoutedEventArgs e) {
// Check whether there is item can be deleted
var idx = uiSchedulesList.SelectedIndex;
if (idx < 0) return;
// Order a confirm
var rv = Util.Win32Dialog.Confirm("确认删除选中的课程安排吗?该操作不可撤销!", "确认删除");
if (!rv) return;
// Remove it
CurrentCourse.Schedules.RemoveAt(idx);
}
private void uiCtxMenuClearSchedule_Click(object sender, RoutedEventArgs e) {
// Order a confirm
var rv = Util.Win32Dialog.Confirm("确认删除所有课程安排吗?该操作不可撤销!", "确认清空");
if (!rv) return;
// Clear all schedules
CurrentCourse.Schedules.Clear();
}
}
}