MVVM密码框

一、Wpf-MVVM的PasswordBox 控件,输入密码时是隐藏文本的,如图
在这里插入图片描述
二、首先在PasswordBox控件里面给一个x:Name值,接下来就直接在登录事件里面写。
三、登录事件
1.在事件里面绑定窗口值
在这里插入图片描述

2.在ViewModel里面声明一个密码框的变量,

public System.Windows.Controls.PasswordBox Box;

3.登录事件

public void Login(Window window)
{
  try
  {
     Window window1 = new Window();
     window1 = window;
     //获取账号
     string UN = UserName;
//获取密码框的name值,然后再获取页面密码//获取name值,转换PasswordBox
Box = window1.FindName("Password") as System.Windows.Controls.PasswordBox;                	
string UP = Box.Password.Trim();
    //判断账号和密码不能为空
    if (!string.IsNullOrEmpty(UN) && !string.IsNullOrEmpty(UP))
    {
      //从数据查询数据判断与页面是否一致
    var login = (from tbstaff in myModels.S_Staff
                where tbstaff.ANun == UN && tbstaff.password == UP
                select new
                {
                   staffID = tbstaff.staffID,
                   ANun = tbstaff.ANun,
                   password = tbstaff.password,//密码
                   position = tbstaff.position,//职务
                   name = tbstaff.name,//姓名
                   jurisdictionID = tbstaff.JurisdictionID//权限ID
                }).Single();
//获取登录的员工ID
int StaffID = login.staffID;
//判断ID是否为0
if (StaffID >0)
{
//5.打开主页面关闭登录页面
//实例化主页面窗口
MainWindow myMainWindow = new MainWindow();
//给主页面对应的viewmodel传值
var mainWindowViewModel = (myMainWindow.DataContext as MainViewModel);
//传值(id)
 mainWindowViewModel.StaffID = StaffID;
myMainWindow.Show();
//关闭窗口
window.Close();
 }
  else
  {
     MessageBox.Show("登录失败");
  }
     }
     else
     {
         MessageBox.Show("数据不能为空");
     }
       }
         catch (Exception e)
         {
               Debug.WriteLine(e);
          }
        }

4.主页面的登录数据,也是过登录事件传值,比如上面的传员工ID,然后在主页面的加载事件里根据传过来的ID查询出需要的字段,

//加载
        public void Loaded(Window wd)
        {
            window = wd;
            //获取系统时间
           string now = DateTime.Now.ToString("yyyy年MM月dd日  HH:mm:ss");
            time = now;

            //查询数据
            var staff = (from tbStaff in myModels.S_Staff
                         where tbStaff.staffID == StaffID
                         select new 
                         {
                             staffID = tbStaff.staffID,
                             ANun = tbStaff.ANun,
                             password = tbStaff.password,//密码
                             position = tbStaff.position,//职务
                             name = tbStaff.name,//姓名
                         }).Single();
            ANun = staff.ANun;//工号
            position = staff.position;//职务

        }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值