【问题标题】:Boolean Resets When App Loads Wp8应用程序加载 Wp8 时布尔值重置
【发布时间】:2014-09-12 00:04:32
【问题描述】:

您好,我对 C# 和 windows phone 还是很陌生。

当应用加载时,我想弹出询问用户是否想做某事的弹出窗口

MessageBoxResult m = MessageBox.Show("Info.", "Question?", MessageBoxButton.OKCancel);
if (m == MessageBoxResult.Cancel)
{                }                       
else if (m == MessageBoxResult.OK)
{  //Do Something }

现在效果很好,如果用户说不,我想要一个弹出窗口询问用户是否愿意下次提醒,所以你使用了

MessageBoxResult m = MessageBox.Show("Info.", "Question?", MessageBoxButton.OKCancel);
if (m == MessageBoxResult.Cancel)
{     
    MessageBoxResult r = MessageBox.Show("", "Would You Like Reminding Next Time ?",MessageBoxButton.OKCancel);
    if (r == MessageBoxResult.Cancel)
    {   }
    else if (r == MessageBoxResult.OK)
    {   }
}                       
else if (m == MessageBoxResult.OK)
{  //Do Something  }

我需要某种开关,所以当应用程序第一次启动时 应用程序检查打开的开关, 他们被问到一个问题

如果他们回答取消, 他们被问到是否要提醒

如果他们回答不, 将开关设置为关闭

我尝试使用布尔值,但它只是在应用程序关闭时重置为 true,如果我使用字符串,它会说字符串不能用作布尔值

有什么建议吗?

【问题讨论】:

    标签: c# windows-phone-7 visual-studio-2012 windows-phone-8


    【解决方案1】:

    例如使用IsolatedStorageSettings.ApplicationSettings快速保存小值

    // this will save my "your_key" to false;
    IsolatedStorageSettings.ApplicationSettings.Add("your_key", false);
    IsolatedStorageSettings.ApplicationSettings.Save(); // make sure you call save
    
    // so the next time the app runs I can get it back doing this
    bool your_key = (bool) IsolatedStorageSettings.ApplicationSettings["your_key"];
    

    但是,应该始终将其包含在 try catch 中,因为该键可能不存在

    bool your_key = false;  // or default value
    try
    {
        your_key = (bool) IsolatedStorageSettings.ApplicationSettings["your_key"];
    }
    catch(Exception ex)
    {
    }
    

    更多信息可以在这里找到:

    How to: Store and Retrieve Application Settings Using Isolated Storage

    【讨论】:

      【解决方案2】:
      if(!IsolatedStorageSettings.ApplicationSettings.Contains("first"))
      {
         // Do your stuff
         IsolatedStorageSettings.ApplicationSettings["first"] = true;
         IsolatedStorageSettings.ApplicationSettings.Save();
      }
      

      这就是您需要的所有代码。 将您只想在首次启动时执行的所有操作放入此 if 语句中。然后在主页Loaded 事件或OnNavigatedTo 中执行此代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-26
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多