我正在创建具有不同视图的stacklayout集,并将其添加到 List<单例类中的StackLayout> 。 当我创建一个新页面并使用stacklayout列表时,它按预期工作。但是当我在第二页中使用相同的列表时,它会抛出一个空指针异常,并且无法在第二页中添加stacklayout列表。
Singleton类:
public class SessionData
{
private static SessionData _instance;
public static SessionData Instance
{
get{
if (_instance == null)
_instance = new SessionData ();
return _instance;
}
}
public List<StackLayout> Views { get; set; } //List of stacklayout views
}
在ContentPage中添加视图:
StackLayout Scrollcontentview = new StackLayout ();
var temp = SessionData.Instance.Views ;
foreach (var content in temp)
{
if(content != null)
{
Scrollcontentview.Children.Add(content );
}
}
如果我在 Page1 中使用代码在ContentPage中添加视图(在上面给出),它可以正常工作,当我导航到 Page2 时使用它失败的相同代码。
我不知道我哪里出错了。如果有人知道解决方案,分享它将非常有用。
先谢谢
答案 0 :(得分:1)
简短回答:您无法在视图层次结构中多次重复使用可视元素。
更长的答案:避免使用单身人士。如果你真的想重用StackLayout,你必须确保首先从它的父项中删除它。