当我手术后在医院里时,插着导管,被迫用铅笔和一张纸计算 body 的液体摄入量/流出量(!!!)...我陷入了困境在 Xamarin.Forms 的选项卡式页面上共享页面之间的值。
我有一个页面 - 摄入/流出,其中是用于总摄入和流出更新的条目元素和按钮元素。用户可以写下液体量并点击按钮将该部分添加到消耗的液体总量中。流出也是如此。
我的第二页是概述 - 概述页面。我想在“概述”页面上用两个标签显示液体总量(摄入和流出)。这就是我陷入困境的地方。
我尝试将 Label.Text 绑定(bind)到概述的页面 View 模型中的属性,但我不知道如何从 Intake/Outflow 页面的代码后面更新概述 View 模型属性。 我还尝试使用应用程序的属性级别,这对于 OnSleep、OnResume 程序来说很方便,我可以在其中存储用户的实际值以供进一步使用。再次,我陷入了来自“摄入/流出”页面后面的代码更新“概述”页面上的标签的困境。另外,我不知道如何在 XAML 中正确绑定(bind) App.SomeProperty 的属性,这也可能是问题所在。
在这种特殊情况下,页面之间共享 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/