将项目添加到另一个列表中 class Windows Phone 8.1
Adding items to a List in another class Windows Phone 8.1
我发现了类似的问题,但我没有设法解决我的问题。
我有一个 Windows Phone 8.1 运行时项目。让我们考虑一个 class 和 2 页。
Itemclass包含对象的属性
public class Item
{
public string firstname { get; set; }
public string lastname { get; set; }
public Item(string fname, string lname)
{
this.firstname = fname;
this.lastname = lname;
}
}
项目的MainPage创建了一个Items列表
public List<Item> list = new List<Item>();
并使用函数
将项目添加到列表中
list.Add(new Item(string1, string2));
然后我有另一个名为 NewItem 的页面。我用这段代码将项目添加到列表中,但它们没有出现(就像代码没有执行,但实际上它执行了)
MainPage m = new MainPage();
m.list.Add(new Item(string1, string2));
为什么它不将项目添加到 MainPage 的列表中?我使用 Frame.Navigate() 而不是 NavigationService class 来导航,这是个问题吗?谢谢!
第一行为:
MainPage m = new MainPage();
m.list.Add(new Item(string1, string2));
您正在创建 MainPage 的新实例,这不是您导航的来源。因此,对该实例的变量所做的任何更改都不会影响您的上一页。还要注意,这个新实例一旦超出范围就会被垃圾回收。
其中一个解决方案可能是让您的 list
成为静态变量 - 然后您就可以像这样 MainPage.list.Add(...);
从应用程序访问它。有关静态变量的更多信息,您将 find at MSDN.
其他解决方案可能是传递上一页的处理程序,然后访问其变量。
另请注意,如果您使用 list
作为 UI 元素的来源,最好将其设为 ObservableCollection,这样它会自动通知 [=26] =] 关于它的变化。
我发现了类似的问题,但我没有设法解决我的问题。
我有一个 Windows Phone 8.1 运行时项目。让我们考虑一个 class 和 2 页。
Itemclass包含对象的属性
public class Item
{
public string firstname { get; set; }
public string lastname { get; set; }
public Item(string fname, string lname)
{
this.firstname = fname;
this.lastname = lname;
}
}
项目的MainPage创建了一个Items列表
public List<Item> list = new List<Item>();
并使用函数
将项目添加到列表中list.Add(new Item(string1, string2));
然后我有另一个名为 NewItem 的页面。我用这段代码将项目添加到列表中,但它们没有出现(就像代码没有执行,但实际上它执行了)
MainPage m = new MainPage();
m.list.Add(new Item(string1, string2));
为什么它不将项目添加到 MainPage 的列表中?我使用 Frame.Navigate() 而不是 NavigationService class 来导航,这是个问题吗?谢谢!
第一行为:
MainPage m = new MainPage();
m.list.Add(new Item(string1, string2));
您正在创建 MainPage 的新实例,这不是您导航的来源。因此,对该实例的变量所做的任何更改都不会影响您的上一页。还要注意,这个新实例一旦超出范围就会被垃圾回收。
其中一个解决方案可能是让您的 list
成为静态变量 - 然后您就可以像这样 MainPage.list.Add(...);
从应用程序访问它。有关静态变量的更多信息,您将 find at MSDN.
其他解决方案可能是传递上一页的处理程序,然后访问其变量。
另请注意,如果您使用 list
作为 UI 元素的来源,最好将其设为 ObservableCollection,这样它会自动通知 [=26] =] 关于它的变化。