【问题标题】:How to pass a list through pages in UWP如何通过 UWP 中的页面传递列表
【发布时间】:2020-08-23 06:25:45
【问题描述】:

我目前正在使用 UWP 应用。我有一个带有复选框的ListView。我想将列表的每个元素(假设已选中)传递到另一个页面。这是我迄今为止尝试过的:

主页:

ArrayList selected = new ArrayList();
private void chk_Checked(object sender, RoutedEventArgs e)
{
    CheckBox checkbox = (CheckBox)sender;
    string item = checkbox.DataContext.ToString();
    selected.Add(item);

    Frame.Navigate(typeof(BlankPage1), selected);

}

第二页:

ArrayList s = new ArrayList();

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    s = e.selected;
}

【问题讨论】:

  • 感谢您提供代码,这真的很有用。此外,包括哪些内容不起作用,或者您知道缺少哪些概念但正在努力实施,这将很有帮助。
  • 感谢您抽出宝贵时间 :) 我不知道要通过 2 页传递一个列表。特别是在 OnNavigatedto() 上,基本上我在语法上苦苦挣扎,我什至不知道这是否是正确的方法。
  • 在第二页尝试获取参数时,需要获取NavigationEventArgs.Parameter Property,因为NavigationEventArgs对象中没有selected属性。

标签: c# .net uwp uwp-xaml


【解决方案1】:

你传递参数的方式是对的,但是在使用参数的时候,你可以这样做。

ArrayList s = new ArrayList();

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    s = e.Parameter as ArrayList;
    if(s != null)
    {
        //to do
    }
    base.OnNavigatedTo(e);
}

更多信息请见doc

【讨论】:

  • 你知道我怎样才能在不改变页面的情况下做同样的事情吗?
  • 没看懂,能不能解释一下,不实际换页?
  • 当我选择一个复选框时,它会立即转到另一个页面,我希望能够检查更多复选框
  • 是的,但是您不能在Checked 事件中执行导航操作,因为当您选中一个框时,此事件会立即发生。您可以使用Button 调用Submit,然后在检查所有选项后,使用Button_Clicked 事件导航并传递参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
  • 1970-01-01
  • 2017-02-19
  • 2016-02-02
  • 1970-01-01
相关资源
最近更新 更多