[英]Pass/Receive <list> between pages and fill listview/richtextbox C# Windows Phone 8.1
我正在创建一个Win的小应用程序。 电话8.1,用户选择了多个复选框,然后,应用程序执行Foreach验证选中了哪个复选框,然后应用程序获取复选框的内容(文本),填写并将列表发送到另一页,然后在第2页,填充一个listview控件。
第1页
List<ClassDados> lista = new List<ClassDados>();
ClassDados cDados = new ClassDados();
foreach (CheckBox c in checkboxes)
{
if (c.IsChecked == true)
{
cDados.Pedido = c.Content.ToString();
lista.Add(cDados);
}
}
Frame.Navigate(typeof(Carrinho), (lista));
我的课:
class ClassDados
{
public string Pedido { get; set; }
public int Valor { get; set; }}
第2页
public sealed partial class Carrinho : Page
{
List<ClassDados> lista = new List<ClassDados>();
public Carrinho()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
ClassDados c = e.Parameter as ClassDados;
Cardapio car = e.Parameter as Cardapio;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
ClassDados c = e.Parameter as ClassDados;
Cardapio car = e.Parameter as Cardapio;
}
}
我的观点是:接收页面1的数据,并用页面1的数据填充listview / richtexbox控件,但是我无法做到这一点,因为我的处理方法在C#Windows Forms上是相同的,但是与Windows Phone不同,有人可以帮助我吗?
我不确定我是否完全理解您的问题。 您是否要将在页面1上创建的List<ClassDados>
传递给页面2?
首先,移动ClassDados cDados = new ClassDados();
行进入foreach循环(第1页):
foreach (CheckBox c in checkboxes)
{
if (c.IsChecked)
{
ClassDados cDados = new ClassDados();
cDados.Pedido = c.Content.ToString();
lista.Add(cDados);
}
}
然后将另一个构造函数添加到页面2:
public Carrinho(List<ClassDados> cDados)
{
this.InitializeComponent();
// Use cDados to populate your control
}
我还注意到ClassDados.Valor
尚未使用。 你可以添加一个构造函数来ClassDados
接受一个字符串,并填充Pedido
财产。
问题是您希望在页面2上接收类型为ClassDados
的对象,尽管在页面1上传递的是ClassDados List<ClassDados> lista
。 因此在第2页上,将List<ClassDados> lista = e.Parameter as List<ClassDados>
。 这应该够了吧。 另外,请确保从e.Parameter
检索对象时检查是否为空!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.