[C#]一个字符串,从 LoginWindow 到主窗口?

发布时间: 2017/2/23 20:12:31
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有从 Application_Startup 运行的 LoginWindow.xaml。 我试图从 LoginWindow 向主窗口传递用户名字符串。

如果你正确,登录 LoginWindow 关闭和主窗口打开,如何存储从 LoginWindow 字符串?

更新︰ 试图将我的用户名字符串存储在 newTest.MyProperty,但它为 null,当他到主窗口。

我把大量的代码,因为很大一部分并不相关。 代码示例︰ App.xaml

<Application x:Class="PasswordSafe.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:PasswordSafe"
         StartupUri="MainWindow.xaml"
         Startup="Application_Startup"
         ShutdownMode="OnExplicitShutdown">

App.xaml.cs

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        LoginWindow nLW = new LoginWindow();
        nLW.ShowDialog();
    }
}

LoginWindow.xaml.cs

private void ButtonLogin_Click(object sender, RoutedEventArgs e)
    {
        StartUp();
        string userN = TextBoxUserName.Text;

        using (var db = dbFactory.Open())
        {
            db.CreateTableIfNotExists<User>();
            User newUser = db.Select<User>().Where(use => use.UserName.Equals(userN)).FirstOrDefault();
            if (true)
            {
                if (newEncrypt.GetMD5(TextBoxPassword.Text) == newUser.MasterPassword)
                {
                    Test newTest = new Test();
                    newTest.MyProperty = newUser.UserName;
                    this.Close();
                }

Test.cs

class Test
{
    public string MyProperty { get; set; }
}

解决方法 1:

到目前为止你做得很好但只有一件事

class Test
{
    public static string MyProperty { get; set; }
}

使用 static 字符串访问字符串作为 Test.MyProperty 为什么静态吗?因为在哪里 static 变量获取创建时在应用程序启动和它获取删除应用程序关闭,所以您的数据仍然会存在直到你关闭该应用程序,但如果你不使用时 static 时你将从当前类移值将被删除。

官方微信
官方QQ群
31647020