gpt4 book ai didi

c# - 如何在 Xamarin.Forms 的选项卡式页面中的页面之间共享值?

转载 作者:行者123 更新时间:2023-11-30 22:52:32 25 4
gpt4 key购买 nike

当我在手术后住院时,有一根导管并被迫用铅笔和一张纸计算我 body 的液体摄入量/流出量 (!!!)...我被困在如何在 Xamarin.Forms 中的选项卡式页面的页面之间共享值。

我有一个页面 - Intake/Outflow,其中有一个 Entry 元素和 Button 元素,用于更新总摄入量和流出量。用户可以写下一定量的液体,然后点击按钮将这部分添加到消耗的液体总量中。流出也是如此。

我的第二页是概览 - 概览页面。我想在带有两个标签的概览页面上显示液体总量(摄入量和流出量)。这就是我卡住的地方。

我尝试将 Label.Text 绑定(bind)到概览页面 View 模型中的属性,但我不知道如何从 Intake/Outflow 页面后面的代码更新概览 View 模型属性。我还尝试使用 App 的属性级别,这对 OnSleep 和 OnResume 例程很方便,我在其中存储用户的实际值以供进一步使用。再一次,我被摄入/流出页面后面的代码困在了位于概览页面的标签更新上。此外,我不知道如何在 XAML 中为 App.SomeProperty 正确绑定(bind)属性,这也可能是问题所在。

在这种特殊情况下,我无法选择在页面之间共享 View 模型。

我的逻辑错了吗?我应该如何处理这个任务?有人可以分享一些具有上述逻辑的示例吗?

最佳答案

只需使用 MessagingCenter,喜欢关于 OverviewViewModel

public OverviewViewModel(){
MessagingCenter.Subscribe<IntakeOutflowViewModel, string>(this, "LabelChanged", (sender, label)=>{
this.LabelValue = label; // use value of label from IntakeOutflowViewModel
})
}

在 IntakeOutflowViewModel 上

public ICommand ButtonCommand => new Command(()=>{
MessagingCenter.Send<IntakeOutflowViewModel,string>(this, "LabelChanged", LabelValue);
})
public string LabelValue{...,...} // The value you bind on view

希望对你有帮助

关于c# - 如何在 Xamarin.Forms 的选项卡式页面中的页面之间共享值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57991004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com