Windows phone 7 如何在页面刷新期间保持属性的值?

Windows phone 7 如何在页面刷新期间保持属性的值?,windows-phone-7,windows-phone-8,Windows Phone 7,Windows Phone 8,我在app.xaml(公共静态列表id{get set})中创建了一个属性 我可以向其中添加数据(例如:App.id.add(user.id)) 这样我就可以从页面中获取添加的数据,并将其用于任何导航页面(例如:App.id[3]) 当页面刷新时,数据返回到App.id[0]时会出现初始化问题。是的,可以从应用程序中的所有页面访问App.cs中定义的公共属性 在你的App.cs中 public List<String> id = new List<string>(

我在app.xaml(公共静态列表id{get set})中创建了一个属性 我可以向其中添加数据(例如:App.id.add(user.id))

这样我就可以从页面中获取添加的数据,并将其用于任何导航页面(例如:App.id[3])


当页面刷新时,数据返回到App.id[0]时会出现初始化问题。

是的,可以从应用程序中的所有页面访问App.cs中定义的公共属性

在你的App.cs中

    public List<String> id = new List<string>();

    // Call this method somewhere so you create some data to use... 
    // eg in your App() contructor
    public void CreateData()
    {
        id.Add("ID1");
        id.Add("ID2");
        id.Add("ID3");
        id.Add("ID4");
        id.Add("ID5");
    }

您可以在这里使用Singleton模式,这将确保创建列表并且只存在一个实例

在App.cs文件中写入以下内容:

    private static List<string> _id;

    public static List<string> id
    {
        get
        {
            if (_id == null)
                _id = new List<string>();

            return _id;
        }

        set
        {
            _id = value;
        }
    }
私有静态列表\u id;
公共静态列表id
{
得到
{
如果(_id==null)
_id=新列表();
返回_id;
}
设置
{
_id=值;
}
}

但我也想调用页面的属性id并从该页面添加数据。比如mainpage.xaml。和添加数据(id.add(y.userid))问题是从app.cs调用属性时出错。你能粘贴给出错误的代码吗?我不明白你为什么不能这样做。公共静态列表id{get;set;}在App.cs中,我在mainpage.xaml.cs中调用它。我无法在页面中将id称为(App.id.add(user.id))。它给了我这个错误(System.NullReferenceException:对象引用未设置为对象的实例)好的,这是因为您没有创建列表的实例,请尝试在App()构造函数中重新插入“id=new List();”!,然后它会工作:-)抱歉再次打扰你,我尝试了id=newlist();它不是持久的。如果id为1,再次为2,则其会忘记1。。id[0],id[1]相反,它也回滚id[0]=2;嗨Frederik Singleton模式真的很有效。。感谢您回答pp.folderId.Remove(id[0]);mscorlib.ni.dll中发生“System.InvalidOperationException”类型的异常,但未在用户代码中处理。当我从persistent属性中删除数据时,它会给我这个错误,因为当我删除其中一个项时列表会更改。这取决于您如何删除它,您能不能再显示一些代码,否则我帮不了您?foreach(string _strin App.Id){if(navigationMessage.Contains(_str)){App.Id.Remove(navigationMessage);}}当字符串被删除时,会出现错误,循环停止。因此,当从多个列表中删除列表[2]时,我们如何处理这个问题。
    private static List<string> _id;

    public static List<string> id
    {
        get
        {
            if (_id == null)
                _id = new List<string>();

            return _id;
        }

        set
        {
            _id = value;
        }
    }