如何在页面之间共享信息

2024-03-02

在开始之前,正如标题中所述,我正在学习 .NET MAUI,而且我对此还很陌生。 我的问题是我找不到从一个页面到上一个页面共享信息的方法。 我想做的是:

在 MainPage 中,有一个按钮,按下后会将用户发送到另一个页面,我们将其称为 LoginPage,在那里询问用户的姓名,输入后将其重定向到上一页,显示“Hello {Name}” ,欢迎!”

主页代码:

string Name = "";
string greetings = "";
async private void LogintBtn_Clicked(object sender, EventArgs e)

{
    {
        await Navigation.PushAsync(new LoginPage());
                    
    }
    greetings = $"Welcome {Name}!";
    Greetinglbl.Text = greetings;
}

登录代码:

    public string name { get; set; }    
    private void btnRegister_Clicked(object sender, EventArgs e)
{
    if  (ValidateName()==false) { return; };

    Navigation.PopAsync();
}

private bool ValidateName()
{
    if (string.IsNullOrWhiteSpace(txtRegistro.Text))
    {

        return false;
    }

    else
        return true;
}

除此之外,我不知道如何在这些页面之间共享信息。 我看到很多开发人员使用 MVVM,但我无法正确获得初学者指南,即使观看 James Montemagno 的 .NET MAUI 初学者指南也对我没有帮助。

我也尝试过使用类似的东西

await Shell.Current.GoToAsync($"LoginPage?Name={Name}");

那,因为我读到的内容用于发送数据,但不知道将其放在哪里,再加上尝试使用同一行进行导航会引发错误(空)。

另外,大多数视频仅展示如何将数据发送到下一页,而不是上一页,并且通常发送到集合,其中一些视频导入了我认为在该项目中不必要的 NuGet 包。


在您的场景中,您可以通过以下方式共享数据Constructor,下面是代码片段供您参考。

主页:

Xaml:

<ScrollView> 
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">



            <Label Text="MainPage"></Label>

            <Button
              
                Text="To Login Page"
                Clicked="OnClicked"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

隐藏代码:

      public MainPage()
      {
            InitializeComponent();
      }

    public MainPage(string a)
    {
        InitializeComponent();
      
            App.Current.MainPage.DisplayAlert("Welcome Back",a,"OK");

    }

    private async void OnClicked(object sender, EventArgs e)
      {
            await Navigation.PushAsync(new LoginPage());
      }

登录页面:

Xaml:

    <VerticalStackLayout> 

        <Label Text="LoginPage"></Label>
        
        <Entry x:Name="myentry"/>

        <Button
               
                Text="ToMain"
                Clicked="BackTo"
                HorizontalOptions="Center" />

    </VerticalStackLayout>

隐藏代码:

public LoginPage() 
      {
            InitializeComponent();
   

  
      }

    private async void BackTo(object sender, EventArgs e)
    {
    
        await Navigation.PushModalAsync(new MainPage(myentry.Text));

    }

最后但并非最不重要的, 在你的App.xaml.cs,像下面这样使用它:

MainPage = new NaviagtionPage(new MainPage())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在页面之间共享信息 的相关文章

  • 如何实现.NET MAUI本地化

    我无法找到任何有关为 MAUI 应用程序实施本地化的指导 我已经阅读了一些有关本地化 Xamarin 应用程序的信息 但即使经过广泛的网络搜索 也无法将其转发到 MAUI 谁能给我指出我可能错过的参考资料 试试这个 创建标准资源 添加新项目
  • 为 MAUI Visual Studio 2022 安装 Android 工作负载时出现问题

    我已按照以下说明安装了 Visual Studio 2022 Preview 4 1 https learn microsoft com en us dotnet maui get started installation 我启动了一个新的
  • 更改 .NET MAUI 应用程序中的汉堡菜单图标

    如何更改 NET MAUI 应用程序中的汉堡菜单图标 我已经更新了所有图标的样式 我想将汉堡菜单图标更改为自定义PNG 我尝试了以下内容Styles xaml但这似乎不是要编辑的正确属性 FlyoutPage的解决方案 的飞出FlyoutP
  • .Net maui:如何在绑定中引用颜色?

    所以我有一个标签 我想从 mvvm 变量设置文本颜色 VM ObservableProperty private string col White XAML
  • 在运行时更改 IconTintColorBehavior 的 TintColor 不起作用

    你好 我正在测试新的IconTintColorBehavior在 CommunityToolkit Maui 1 1 0 中 它可以查找 但仅在启动应用程序时有效 如果我改变AppTheme在运行时 它不起作用 还有其他人观察过这种行为吗
  • dotnet 发布错误

    我使用这些资源来学习如何发布 MAUI 应用程序 https learn microsoft com en us dotnet maui ios deployment overview https github com dotnet mau
  • 将 .NET Maui Preview 14 发布到 App Store 和 Google Play

    是否可以将 NET Maui 应用程序发布到 Apple AppStore 和 Google Play 还是我们需要等到 NET Maui 最终确定 正如评论中已经指出的那样 您绝对可以 但由于明显的原因并未正式推荐 不过 我确实知道现在商
  • MAUI类库和普通类库有什么区别?

    据我所知 MAUI 类库是 NET 6 中的类库 您可以在其中注入特定于平台的代码 但是 MAUI 库和 NET 6 库之间真的还有其他区别吗 如果省略平台代码 它们可以互换吗 唯一的区别是它已经内置了多目标 这意味着 NET MAUI 类
  • 使用 DataTrigger 的 .NET Maui 样式

    概述 我有两个属性 IsPast IsCurrentMonth 如果已经过去或者not当月我想用红色显示标签 以下代码是默认 Maui 应用程序的缩小版本 如果你运行它 你会得到红色标签 预期 单击一次后 它会保持红色 预期 但单击后会打开
  • 程序不包含适合 .Net MAUI Xunit 中入口点的静态“Main”方法

    我正进入 状态 程序不包含适合入口点的静态 Main 方法 在 NET MAUI 中运行 Xunit 项目时出错 public class UnitTest1 Fact public void Test1 重现 创建一个 MAUI 应用程序
  • 如何从 .NET MAUI Blazor 写入和读取文件?

    我正在尝试将音频文件写入 Windows 上的 NET MAUI Blazor 因此我可以通过 HTML Audio Element 播放它https 0 0 0 0 https 0 0 0 0 或这样的链接 如何获取可写入的应用程序本地存
  • .NET MAUI 中的 Android 深度链接(意图)支持

    我目前正在尝试向使用 NET MAUI 编写的 Android 应用程序添加深度链接支持 通过 Intents 我添加了一个activityXML 元素下应用我的 AndroidManifest xml 中的元素
  • iOS 上的 .NET MAUI 中的 Entity Framework Core 需要哪些修剪/链接器设置?

    我正在将使用 Entity Framework Core 3 1 和 SQLite 数据库的 Xamarin Forms 5 0 应用程序迁移到 NET MAUI 6 0 和 Entity Framework Core 6 0 调试构建工作
  • 如何在MAUI中设置ContentPage全屏(或沉浸式)?

    是否有一个属性可以设置页面全屏显示 在 Xamarin 中 可以为 Android 等设置沉浸式模式 对于Maui项目 不需要再次在ContentPage中设置全屏 在 Android 中设置全屏也可以 您可以在 Maui 项目的 Main
  • 如何通过 URI 激活打开 WinUI Maui?

    我创建了一个毛伊岛 Windows 应用程序 我希望通过 URI 激活应用程序并将查询参数传递给应用程序 我在包清单中添加了用于通过 uri 调用应用程序的 Windows 协议
  • 需要一种方法在 MAUI 的编辑器/输入字段中隐藏软键盘

    我发现此链接中似乎有用的内容 Xamarin Forms 中的键盘禁用了 Entry 控件 https theconfuzedsourcecode wordpress com 2017 05 19 a keyboard disabled e
  • 如何在页面之间共享信息

    在开始之前 正如标题中所述 我正在学习 NET MAUI 而且我对此还很陌生 我的问题是我找不到从一个页面到上一个页面共享信息的方法 我想做的是 在 MainPage 中 有一个按钮 按下后会将用户发送到另一个页面 我们将其称为 Login
  • 从页面内重新加载 .NET MAUI 中的瞬态页面

    我有一个 NET MAUI 应用程序 其中一个页面在 MauiProgram cs 中注册为瞬态 我希望能够使用页面本身上的按钮重置页面 但不知道如何操作 请有人帮助我 我已经尝试过使用这段代码 但它没有做任何事情 RelayCommand
  • Maui 类库无法编译 Android(无 Android 命名空间)

    我正在尝试创建一个具有平台相关部分的毛伊岛类库 在 Android 类库的平台部分中 我添加了 Android 代码 但是当我编译时 它告诉我它找不到 Android 命名空间 我已经对照编译 Android 的主程序检查了 Nuget 包
  • 定制 NET MAUI 启动画面

    我正在尝试制作闪屏 Net毛伊岛包含渐变背景和动画徽标 我看过有关如何制作简单的飞溅的教程

随机推荐

  • c_cpp_properties.json 中的 includePath 在 C 的 VSCode 中不起作用

    我正在 Ubuntu 18 04 上使用 C C 扩展的 VSCode 进行工作 我试图包含 gmodule h 并且它引发了错误gmodule h No such file or directory主文件第 2 行第 10 个字符 因此
  • 将值的总和放在圆环图的中心?

    我正在绘制这个饼图 使用此代码 dxPieChart dataSource dsAlarmsBySeverity size width 275 height 150 palette FFFF00 FF9900 CC3300 33CC33 0
  • 在android中突出显示谷歌地图上的街道

    是否有可能在android突出显示某条街道google map当用户点击 街道 目前我正在研究一个app这将识别有停车场的街道 插槽可用 这个小提琴可以帮助 init map var myOptions mapTypeId google m
  • 如何查找在某个时候分配给您的问题?

    我们在项目中广泛使用 Jira 但我经常很难发现问题 我知道 我之前一直在解决这些问题 通常 如果报告了某些案例 这对我过去一直在做的事情来说似乎很熟悉 但我不记得具体是什么以及何时 通常 报告一个问题 然后我们的 scrum master
  • Jquery - 悬停时将图像高度和宽度扩展 20%

    晚上好 动态访问图像高度和宽度的最佳方法是什么 我想在图像宽度和高度上添加 20 并在周围的 div 悬停时设置动画 我想我需要使用 this 但不确定如何访问图像 非常感谢任何帮助 干杯保罗 你可以做这样的事情 使用 height htt
  • 防止导航栏右侧文本在导航栏中换行?

    In 这个 Bootply 示例 http www bootply com 133310 我该如何防止navbar right文本在移动视图中换行 我希望所有文本都保留在一行上 随着页面宽度的缩小而逐渐靠近 即 桌面视图中所见内容的压缩版本
  • 使用 Twitter API v2 方法时,Tweepy 不返回 url 媒体字段

    我请求 Twitter API v2 获取推文的详细信息并使用身份验证所需的客户端对象 import tweepy config client tweepy Client bearer token config BEARER TOKEN c
  • 使用 MVC 和 Razor 创建 object.cshtml 编辑器模板

    我希望为 Object cshtml 创建一个编辑器模板来更改 Html EditorForModel 方法的行为 我找不到任何使用 Razor 的示例 我见过这个例子 http bradwilson typepad com blog 20
  • Windows Azure 中的密钥管理

    我对如何在 Windows Azure 中存储密钥 用于数据加密 有点困惑 根据以下两个链接 1 http msdn microsoft com en us magazine ee291586 aspx 2 http blogs msdn
  • 使随机产生的数字更有可能

    我在用着x numpy random rand 1 生成一个 0 到 1 之间的随机数 我该如何做到这一点x gt 5的可能性是 2 倍x lt 5 这是一个合适的名字 只需对输入进行一些操作即可 第一组x在范围内0 to 1 5 x nu
  • 可以在Java中强制执行包依赖层次结构吗?

    基本上我有包 com me application com me application thing com me library 我想执行以下规则 com me application可以包括com me library 除了com me
  • jsdoc二维数组

    我有一个字符串数组的数组 但我不知道如何使用 JSDoc 来记录它 class function PostbackList type int default this TypeID 0 type PostbackList Field thi
  • Tomcat 7 SSL 失败

    我使用 Tomcat 7 并将启用 SSL 连接器 实际上我已经将此解决方案编辑为server xml file
  • QtRuby 可以与 Qt 5 一起使用吗?

    我可以在网上找到的所有内容QtRuby https duckduckgo com q ruby and qt使用 Qt 4 但当前的 Qt 版本是 5 这是否只是文档跟不上现实的问题 Qt 5 可以与 QtRuby 一起正常工作 如果您断言
  • Windows Phone 运行时没有页面转换

    我正在尝试禁用 Windows Phone 运行时的默认页面导航动画 我所能实现的就是将其更改为连续体 十字转门或幻灯片 但我希望页面能够立即更改 因此 当我调用 this Frame navigate 时 它应该导航到新页面 而无需任何动
  • 从 Windows 上下文菜单接收参数

    我以前做过这个 但我一生都不记得该怎么做 在我的资源管理器上下文菜单中 我添加了一个新条目 转到 regedit 转到 HKEY CLASSES ROOT bla bla bla 现在 当我单击我的选项时 我想传递文件路径 文件名等我的应用
  • 如何从服务 C# 捕获控制台输出?

    我们有一个部署到远程客户系统的 C 服务 应用程序将大量 诊断 信息写入控制台 即 Console WriteLine 该服务没有 做它应该做的事 我们如何捕获另一个应用程序中服务的控制台输出 WinForm 版本的应用程序可以在客户位置加
  • Gradle Jacoco 和 JUnit5

    我们刚刚将单元测试移植到 JUnit5 意识到这仍然是相当早期的采用 谷歌上几乎没有任何提示 最具挑战性的是为我们在 jenkins 上使用的 Junit5 测试获取 jacoco 代码覆盖率 因为这花了我几乎一天的时间才弄清楚 所以我想我
  • 注册为 Spring bean 时过滤器调用两次

    我想用 Autowire with a Filter 所以我在中定义我的过滤器SecurityConfig如下 Override protected void configure HttpSecurity http throws Excep
  • 如何在页面之间共享信息

    在开始之前 正如标题中所述 我正在学习 NET MAUI 而且我对此还很陌生 我的问题是我找不到从一个页面到上一个页面共享信息的方法 我想做的是 在 MainPage 中 有一个按钮 按下后会将用户发送到另一个页面 我们将其称为 Login