zoukankan      html  css  js  c++  java
  • 页面导航 页面内容的保存, GIS

    在页面导航中, image,通过后退按钮,不会new 一个page对象,通过后退按钮页面的内容不会有丢失 ,但是通过

    private void button1_Click(object sender, RoutedEventArgs e)
            {
                this.NavigationService.Navigate(new System.Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));
            }

    这种方式导航的都会new 一个新page ,之前页面的 数据都会丢失,为了解决

    this.NavigationService.Navigate(new System.Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));这种导航方式数据丢失的问题,提供一下解决方案,创建下面这个类

    public class Setting<T>
      {
        string name;
        T value;
        T defaultValue;
        bool hasValue;

        public Setting(string name, T defaultValue)
        {
          this.name = name;
          this.defaultValue = defaultValue;
        }

        public T Value
        {
          get
          {
            // Check for the cached value
            if (!this.hasValue)
            {
              // Try to get the value from Isolated Storage
              if (!IsolatedStorageSettings.ApplicationSettings.TryGetValue(
                    this.name, out this.value))
              {
                // It hasn't been set yet
                this.value = this.defaultValue;
                IsolatedStorageSettings.ApplicationSettings[this.name] = this.value;
              }
              this.hasValue = true;
            }

            return this.value;
          }

          set
          {
            // Save the value to Isolated Storage
            IsolatedStorageSettings.ApplicationSettings[this.name] = value;
            this.value = value;
            this.hasValue = true;
          }
        }

        public T DefaultValue
        {
          get { return this.defaultValue; }
        }

        // "Clear" cached value:
        public void ForceRefresh()
        {
          this.hasValue = false;
        }
      }

    在需要保存数据的页面里定义这么一个字段

      Setting<int> savedCount = new Setting<int>("SavedCount", 1);

    然后 在导航出去之前 ( protected override void OnNavigatedFrom(NavigationEventArgs e))  给savedCount 赋值

        this.savedCount.Value = “something”

    最后在导航进来的时候 (OnNavigatedTo事件)里面读取savedCount 里面的值

      this.count = this.savedCount.Value;

    通过对setting里面代码的看一眼里面用到了   IsolatedStorageSettings.ApplicationSettings[this.name]。

  • 相关阅读:
    CF1202F You Are Given Some Letters...
    CF1178E Archaeology
    PTA (Advanced Level) 1005 Spell It Right
    PTA (Advanced Level) 1004 Counting Leaves
    Qt5——从零开始的Hello World教程(Qt Creator)
    PTA (Advanced Level) 1003 Emergency
    PTA (Advanced Level) 1002 A+B for Polynomials
    HDU 1272 小希的迷宫
    FZU 2150 Fire Game
    HihoCoder
  • 原文地址:https://www.cnblogs.com/gisbeginner/p/2536291.html
Copyright © 2011-2022 走看看