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