/// <summary> /// 全参构造函数 /// </summary> /// <param name="User">系统当前使用者用户对象</param> public DataWindow(User User) { borrowWindow = null; returnWindow = null; addStuffWindow = null; removeStuffWindow = null; user = User; //系统初始化组件函数 InitializeComponent(); }
/// <summary> /// 数据网格选中项变更事件回调函数 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgrdStuffInfo_SelectionChanged(object sender, SelectionChangedEventArgs e) { //获取数据网格当前选中行的行号 int selectedIndex = dgrdStuffInfo.SelectedIndex; //判断选中行的行号,避免切换绑定资源时引发的异常 if (selectedIndex > -1) { //取得数据网格当前的物资对象表 Stuff stuff = dgrdStuffInfo.SelectedItem as Stuff; //如果物资处于可借状态——即: 1.用户处于所有物资界面; //2.该物资当前被拥有者持有; 3.该物资的拥有者不是当前用户。 if ((bool)rdbAllStuffs.IsChecked && stuff.State.Equals("Holding") && !stuff.Owner.Equals(user.UserName)) { //按用户名获取缓存中的当前物资拥有者用户对象 User owner = App.GetUserByUserName(stuff.Owner); //如果借入窗口尚未实例化 if (null == borrowWindow) { //创建并初始化借入窗口对象 borrowWindow = new BorrowWindow(this, stuff, owner, user); } //显示借入窗口 borrowWindow.Show(); } //如果物资处于可还状态——即: 1.用户处于借入物资界面; //2.该物资当前被借出; 3.该物资的当前持有者是当前用户。 else if ((bool)rdbBorrowedStuffs.IsChecked && stuff.State.Equals("LentOut") && stuff.CurrentHolder.Equals(user.UserName)) { //按用户名获取缓存中的当前物资拥有者用户对象 User owner = App.GetUserByUserName(stuff.Owner); //如果归还窗口尚未实例化 if (null == returnWindow) { //创建并初始化归还物口对象 returnWindow = new ReturnWindow(this, stuff, owner, user); } //显示归还窗口 returnWindow.Show(); } //如果物资处于可删除状态——即: 1.用户处于我的物资界面; //2.该物资的拥有者不是当前用户。 else if ((bool)rdbMyStuffs.IsChecked && stuff.Owner.Equals(user.UserName)) { //如果该物资当前被借出 if (!stuff.State.Equals("Holding")) { MessageBox.Show("该物资当前处于借出状态,请先执行归还流程。", "删除失败", MessageBoxButton.OK, MessageBoxImage.Asterisk); return; } //按实验室号获取缓存中的主管老师用户对象 User headTeacher = App.GetTeacherByLaboratory(user.Laboratory); //如果未查询到该实验室的主管老师 if (null == headTeacher) { MessageBox.Show("未查询到主管老师的相关信息,请通知该主管老师注册本系统或联系系统管理员。", "错误的用户信息", MessageBoxButton.OK, MessageBoxImage.Asterisk); return; } //如果删除物资窗口尚未实例化 if (null == removeStuffWindow) { //创建并初始化删除物资窗口 removeStuffWindow = new RemoveStuffWindow(this, stuff, headTeacher, user); } //显示删除物资窗口 removeStuffWindow.Show(); } } }