代码之家  ›  专栏  ›  技术社区  ›  JayJay

绑定文本块Linq ToSQL和WPF

  •  0
  • JayJay  · 技术社区  · 16 年前

    我有一个带用户名和密码的登录窗口,可以在软件中访问,之后,经过身份验证的用户将在下一个窗口(软件的主窗口)中显示在文本块中经过身份验证的用户的名称…我显示了我的登录窗口的代码段:

    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    
        public bool ValidateApplicationUser(string userName, string password)
        {
          {
                var AuthContext = new DataClasses1DataContext();
                var query = from c in  AuthContext.Users
                            where (c.Username == userName.ToLower() && c.Password == password.ToLower())
                            select c;
    
                if(query.Count() != 0 )
                {
                    return true;
                }
    
                return false;
            }
        }
    
        private void mahhh(object sender, RoutedEventArgs e)
        {
            bool authenticated = true;
            {
                if (usernameTextBox.Text !="" && passwordTextBox.Text != "")
                {
                    authenticated = ValidateApplicationUser(usernameTextBox.Text , passwordTextBox.Text);
                }
            }
            if (!authenticated)
            {
                MessageBox.Show("Invalid login. Try again.");
            }
            else
            {
                MessageBox.Show("Congradulations! You're a valid user!");
                MainWindow c = new MainWindow();
                c.ShowDialog();
            }
        }
    }
    

    如果我使用主窗口中的用户名“marc”进行身份验证,我会在文本块中显示用户名“marc”,但我不知道我成功了吗? 我怎么能做到?

    3 回复  |  直到 8 年前
        1
  •  0
  •   Ayman    16 年前

    简单地,将用户名传递给主窗口的构造函数,如下所示

    MainWindow c = New MainWindow(usernameTextBox.Text);
    

    在主窗口的构造函数中,接收变量中的值,然后用它做任何您想做的事情,如下所示

    private String _userName;
    
    public MainWindow(string userName)
    { 
        _userName = userName
    }
    
        2
  •  1
  •   Rami Olaqi    16 年前

    我认为您在YR代码中有一些错误(它允许记录空字段),它必须是:

     bool authenticated = true;
        {
            if (usernameTextBox.Text !="" && passwordTextBox.Text != "")
            {
                authenticated = ValidateApplicationUser(usernameTextBox.Text , passwordTextBox.Text);
            }
    
    
        }
        if (!authenticated || usernameTextBox.Text == "" || passwordTextBox.Text == "")
        {
            MessageBox.Show("Invalid login. Try again.");
        }
        else
        {
            MessageBox.Show("Congradulations! You're a valid user!");
            MainWindow c = new MainWindow();
            c.ShowDialog();
    
        }
    
        3
  •  0
  •   jEROD    16 年前

    向主窗口类添加公共变量/属性

    public string Username { get; set; }
    

    现在可以设置属性

    MessageBox.Show("Congradulations! You're a valid user!");
    MainWindow c = new MainWindow();
    c.Username = usernameTextBox.Text;
    c.ShowDialog();
    

    在主窗口中使用它

    MainWindow_Loaded(..) {      
       MessageBox.Show("You are " + Username);
    }
    
    推荐文章