C# 标签赢得';即使传递了值,也不会更新
我在更新标签时遇到了一些问题。在Xaml.cs中,我想将一个值传递给另一个页面,但不想切换页面。以下是我使用的代码: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
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向该页面发送消息