在页面之间传递数据 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的主要内容,如果未能解决你的问题,请参考以下文章