Pass/Receive <list> 页面之间和填充 listview/richtextbox C# Windows Phone 8.1
Pass/Receive <list> between pages and fill listview/richtextbox C# Windows Phone 8.1
我正在为 Win 创建一个小应用程序。 Phone 8.1,用户 select 多个复选框,然后,应用程序执行 Foreach 以验证哪个复选框被 selected,然后应用程序获取复选框内容(文本),填一个<list>
然后发送list到另一个页面,在第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:
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 表格,但与 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
!
检索对象时检查是否为 null
我正在为 Win 创建一个小应用程序。 Phone 8.1,用户 select 多个复选框,然后,应用程序执行 Foreach 以验证哪个复选框被 selected,然后应用程序获取复选框内容(文本),填一个<list>
然后发送list到另一个页面,在第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:
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 表格,但与 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
!