2009-03-04 9 views
0

Ich habe ein LoginWindow mit Benutzername und Passwort für den Zugriff in der Software, nachdem der Benutzer authentifiziert ich möchte im nächsten Fenster (das Hauptfenster der Software) den Namen des Benutzers in einem TextBlock authentifiziert ... i zeigen einen Code-Schnipsel meines Loginwindow:Binding TextBlock Linq ToSql & WPF

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(); 
     } 
    } 
} 

Wenn ich mit dem Benutzernamen „Marc“ in der Mainwindow authentifizieren ich den Benutzernamen „Marc“ in einem Textblock zeigen und ich weiß nicht, ich mache es? Wie kann ich es tun?

+0

Möglicherweise möchten Sie klären einstellen Frage. Ich bin mir nicht sicher, wo der Benutzername gespeichert ist oder wo er angezeigt werden soll. –

Antwort

0

einfach, vorbei an den Usernamen an den Konstruktor des Hauptfensters wie diese

MainWindow c = New MainWindow(usernameTextBox.Text); 

Und im Konstruktor des Hauptfensters den Wert in Variable erhalten und tun, was man will, wie diese

private String _userName; 

public MainWindow(string userName) 
{ 
    _userName = userName 
} 
1

ich glaube, Sie einige Fehler in yr Code hatte (es wird leeres Feld anmelden können), muss es sein wie:

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(); 

    } 
0

eine öffentliche Variable/Eigenschaft auf Ihrem Mainwindow-Klasse

public string Username { get; set; } 

jetzt fügen Sie die Eigenschaft

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

und es Ihre in Ihrem Mainwindow verwenden

MainWindow_Loaded(..) {  
    MessageBox.Show("You are " + Username); 
}