仅为第一次访问设置默认值

时间:2013-06-18 00:39:15

标签: c# windows-phone default-value

在MainPage.xam中有PasswordBox,如果您输入正确的密码,则可以访问Address.xaml。

密码(名为masterpass的字符串)设置为“0000”并且有一个选项可以更改它,但每次打开应用程序时,密码再次设置为“0000”

我做错了什么?

以下是代码:

public partial class MainPage : PhoneApplicationPage
{
    // Constructor
    private string masterpass ="0000";
    public MainPage()
    {
        InitializeComponent();
    }


    private void CustomersButton_Click(object sender, RoutedEventArgs e)
    {
        if (String.Compare(inizio.Password, masterpass)==0)
        {
            NavigationService.Navigate(new Uri("/Address.xaml", UriKind.Relative));
        }
        else
        {
            MessageBox.Show("Wrong password, please try again", "Error", MessageBoxButton.OK);
        }
    }


    private void Save_Click(object sender, RoutedEventArgs e)
    {
        if (String.Compare(vecchio.Password, masterpass) == 0)
        {
            if (String.Compare(newmaster.Password, repeatmaster.Password) == 0)
            {
                masterpass = newmaster.Password;
                MessageBox.Show("Password changed", "Confirmation", MessageBoxButton.OK);
            }
            else
            {
                MessageBox.Show("New password doesn't match confirmation", "Error", MessageBoxButton.OK);
            }
        }
        else
        {
            MessageBox.Show("Wrong master password, please try again", "Error", MessageBoxButton.OK);
        }
    }
}

谢谢大家

1 个答案:

答案 0 :(得分:0)

masterpass只是应用程序中的一个变量,每次重新启动程序时都会重置该变量。如果要保留该值,可以使用IsolatedStorageSettings。我建议您阅读great quickstart,但同时您可以添加以下代码:

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

// Constructor

public MainPage()
{
    InitializeComponent();

    if (!settings.Contains("masterPass"))
    {
        // set a default
        settings.Add("masterPass", "0000");
        settings.Save();
    }
}

然后,只要您想使用masterPass,请使用settings["masterPass"]。更改值时,请不要忘记致电Save()。这是一个非常快速的介绍(而不是最干净的代码),但快速入门将指向正确的方向。