在页面之间传递数据 c# windows 8.1

Posted

技术标签:

【中文标题】在页面之间传递数据 c# windows 8.1【英文标题】:Passing data from page to page c# windows 8.1 【发布时间】:2016-08-04 11:37:13 【问题描述】:

我想要做的是将总金额从结帐页面传递到摘要页面。总金额在结帐页面上有效,但是当我尝试使用此代码传递时:Frame.Navigate(typeof(Summary), new TotalValue );,它什么也没做。 这是我在结帐页面上给我总金额的代码

  private double totalValue;

            public double TotalValue
            
                get  return totalValue; 
                set
                
                    totalValue = value;
                    OnPropertyChanged("TotalValue");
                
            

        public IEnumerable<Control> Controls  get; private set; 

 protected override void OnNavigatedTo(NavigationEventArgs e)
        
            BuyingPage.Flavour data = e.Parameter as BuyingPage.Flavour;
            /**    ItemChosentxt.Text = data.Name;
                ItemChosentxt2.Text = data.Name;
                ItemChosentxt3.Text = data.Name;
                ItemChosentxt4.Text = data.Name;**/
            if (data != null)
               
                Flavour.Add(data);
                double tempTotalValue = 0;
                foreach (var record in Flavour)
                
                    tempTotalValue = tempTotalValue + record.Value;
                
                TotalValue = tempTotalValue;
            
        

【问题讨论】:

【参考方案1】:

您将e.Parameter 转换为BuyingPage.Flavour,但像匿名类型一样传递它:new TotalValue

要么创建BuyingPage.Flavour 的新实例并像Frame.Navigate(typeof(Summary), flavor); 一样传递它,要么更改以下行:

BuyingPage.Flavour data = e.Parameter as BuyingPage.Flavour;

类似于:

dynamic data = e.Parameter;

或者,让它更简单,就像@Archana 建议的那样:

Frame.Navigate(typeof(Summary), TotalValue);

然后:

double data = (double)e.Parameter;

【讨论】:

那不是dynamic类型,而是匿名的。 为什么这很重要?我的问题与此无关。那部分有效。我说的是让结帐页面上显示的总价值也显示在摘要页面上 你为什么要做这个“new TotalValue ”? TotalValue 的类型是 double 对吗? 如果您只想传递总值,请执行 thisFrame.Navigate(typeof(Summary),TotalValue); @EldarDordzhiev 你是对的!刚刚编辑了答案。但是,无论如何,要访问TotalValue 属性,我们必须使用dynamic,对吧,还是有其他方法?

以上是关于在页面之间传递数据 c# windows 8.1的主要内容,如果未能解决你的问题,请参考以下文章

页面上用jQuery获取的值,怎样能传递到后台,C#

Windows Phone 8.1 无法识别导航到的页面

将 JSON 字符串从一个应用程序传递到另一个应用程序(Windows 8.1 应用程序)C#

WPF C#怎么窗体间传值

asp.net c#向html内传值问题,高手请来

页面传值