繁体   English   中英

通过/接收 <list> 在页面之间并填充listview / richtextbox C#Windows Phone 8.1

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM