为了账号安全,请及时绑定邮箱和手机立即绑定

在代码隐藏中访问XAML绑定

在代码隐藏中访问XAML绑定

C#
尚方宝剑之说 2021-05-17 10:26:23
我在Xamarin中工作,但我相信这适用于使用XAML的任何UWP应用程序。首先,我有两个ContentPages。在第一页上,我想将一些数据传递给第二页,因此我将其作为导航的一部分:    async void BuyTickets(object sender, EventArgs e)    {        var ticketOrderTotal = new TicketOrder        {            OrderTotal = lblOrderAmount.Text,            OrderTotalList = ticketsPrices.Where(o => o.TicketQuantity > 0).ToList<Ticket>()        };        var paymentPage = new PaymentPage();        paymentPage.BindingContext = ticketOrderTotal;        await Navigation.PushAsync(paymentPage);    }上面在XAML中工作正常。例如,在第二页(PaymentPage)上,我可以像这样引用BindingContext,并且Text属性是正确的:<Label x:Name="lblOrderAmount" Text="{Binding OrderTotal}" />我想做的是访问第二页后面C#代码中的“ {Binding OrderTotal}”值。我也找到了一种方法来执行此操作,但是它似乎并不是最佳方法。这是我所处的位置:<Label x:Name="lblOrderAmount" Text="{Binding OrderTotal}" BindingContextChanged="GetChargeAmount" />这是标签的代码背后:    public static string m_charge_amount = "";    ...    private void GetChargeAmount(object sender, EventArgs e)    {        var lbl = ((Label)sender);        m_charge_amount = lbl.Text;    }所以我的问题是:还有更好的方法吗?由于XAML似乎扎根于WPF,Silverlight,Xamarin,Windows 8和现在的Windows 10(UWP)中,因此特别难以研究。到处都是。我一直在与框架作斗争,以完成我认为应该很容易做的事情。请帮忙,但要很好。
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

而不是PageAset PageB's BindingContext,而是将ticketOrderTotal对象作为PageB's构造函数的参数传递。然后PageB可以设置它自己BindingContextticketOrderTotal对象,并保留对该对象的本地引用。


查看完整回答
反对 回复 2021-05-23
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信