C# 标签赢得';即使传递了值,也不会更新

C# 标签赢得';即使传递了值,也不会更新,c#,android,xaml,xamarin,C#,Android,Xaml,Xamarin,我在更新标签时遇到了一些问题。在Xaml.cs中,我想将一个值传递给另一个页面,但不想切换页面。以下是我使用的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Xamarin.Forms.Xaml; using EscapeHaarlem.Models

我在更新标签时遇到了一些问题。在Xaml.cs中,我想将一个值传递给另一个页面,但不想切换页面。以下是我使用的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

using EscapeHaarlem.Models;
using EscapeHaarlem.Views;
using EscapeHaarlem.ViewModels;
using EscapeHaarlem.Services;

namespace EscapeHaarlem.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ItemsPage : ContentPage
{
    ItemsViewModel viewModel;
    AboutPage aboutPage ;
    int Cost;
    public ItemsPage()
    {
        InitializeComponent();
        BindingContext = viewModel = new ItemsViewModel();
        aboutPage = new AboutPage();
    }

    async void AddItem_Clicked(object sender, EventArgs e)
    {
        await Navigation.PushModalAsync(new NavigationPage(new NewItemPage()));
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();

        if (viewModel.Items.Count == 0)
            viewModel.LoadItemsCommand.Execute(null);
    }

    private async void FlowListView_FlowItemTapped(object sender, ItemTappedEventArgs e)
    {
        var item = e.Item as Item;
        if (item == null)
            return;

        bool answer = await DisplayAlert(item.Text, item.Description, "Yes", "No");

        if (answer == true)
        {
            Cost = Cost + item.Cost;
            aboutPage.UpdatePusnihLabel(Cost);
            await Navigation.PushAsync(new ItemDetailPage(new ItemDetailViewModel(item)));
        }
        else
        {
            return;
        }
        //ItemsPage.ListView.Item = null;
    }
}
}
其中,
AboutPage
是需要新值的页面。显示警报且用户按下Ok后,应向
AboutPage
发送成本。
Cost
的值来自
MockDataStore
,例如:

newitem{Id=Guid.NewGuid().ToString(),Text=“Item 1”,Description=“这是一个项目说明。”,Cost=1},

当我在调试模式下读取带断点的值时,所有值都正确传递。但是当我想在
AboutPage
中显示它时,它不会改变。这是
AboutPage
的Xaml.cs中的代码:

    public void UpdatePusnihLabel(int Count)
    {
        lblCounter.Text = Count.ToString();
    }
即使在这里,我的价值观也是正确的。但即使我尝试
lblCounter.Text=“Hello world”它不会更新标签

这是
AboutPage
标签的Xaml:

<StackLayout Grid.Column="2" VerticalOptions="Center">
    <Label x:Name="lblCounter" HorizontalTextAlignment="Center" Rotation="270" FontSize="40" HorizontalOptions="Start" ></Label>
</StackLayout>


希望有人能告诉我为什么我的标签根本不会更新/显示任何文本。

您正在创建AboutPage的实例,但从未导航到它或以其他方式显示它,但这是在具有两个选项卡的列表视图中?那么它不会自动更新吗?当我调用这个函数时:updatepunihLabel()这不会更新标签吗?如果已经显示了AboutPage的实例,在内存中创建新实例不会对现有实例产生任何影响。这是基本的哦,我想我已经开始明白了,对不起,我只是听到了哦。但是它怎么能被修复呢?我不会直接修改另一个页面上的值,而是使用MessagingCenter向该页面发送消息