C#跨页面共享listview项目

时间:2017-05-03 02:16:36

标签: c# list class model-view-controller uwp

初学者。

我的主页上有一个列表,我通过在提交它的文本框中输入内容来添加项目。创建listview项目后,我希望能够单击某个项目并在另一个页面中查看其值。

我为此创建了一个DetailsPage,但我不知道在这些页面之间共享数据的最佳方式是什么。

到目前为止,这是我在MainPage中的内容:      公共密封部分类主页:页面     {         public int itemCounter;

    public MainPage()
    {
        this.InitializeComponent();


    //This is the button that submits the entered text

    public void btnSubmitInPopup_Click_1(object sender, RoutedEventArgs e)
    {
        //Create new listview item and textblock
        ListViewItem item = new ListViewItem();
        TextBlock txtBloodSugarValue = new TextBlock();


        //Save text input value to label and add item to list
        txtBloodSugarValue.Text = txtInput.Text;
        item.Content = txtBloodSugarValue;
        mainListView.Items.Add(item);


        //Reset text input field
        txtInput.Text = "";

        //Update counter of items in list
        itemCounter = mainListView.Items.Count();
        lblItemCounter.Text = itemCounter.ToString();


    }
}

我的DetailPage字面上只有一个标签,我试图填充我在MainPage中单击的listview项目中的任何值。

最好的方法是什么? 希望这是有道理的。

非常感谢。

1 个答案:

答案 0 :(得分:0)

你有3种方法可以做到:

  1. 声明静态变量并以第一种形式设置并以第二种形式(或任何地方!)使用
  2. 在第二个表单类中创建公共字段/ propeey并从第一个表单
  3. 设置它
  4. 将值作为参数传递给第二类的构造函数/函数
  5. 我在这里添加第二个表单类:

    public static int StaticVariable { get; set; }//First Method
    public int PublicProperty { get; set; }
    
    public Form2(int Value)
    {
        InitializeComponent();
        //Do your code here with constructor way here
    }
    public Form2()
    {
        InitializeComponent();
    }
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        //Do your code for 1,2 here
    }
    
    public void SetValueWithFunction(int value)
    {
        //Do your code for setting value with second type in Number 3
    }
    

    我希望这会有所帮助:)