首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Xamarin Forms (C#) -从Picker.SelectedIndexChanged调用时,对Navigation.PushModalAsync的调用抛出空引用异常

Xamarin Forms是一个跨平台的移动应用开发框架,使用C#语言进行开发。它允许开发人员使用单一的代码库创建适用于iOS、Android和Windows等多个平台的移动应用程序。

在Xamarin Forms中,Picker是一种用户界面控件,用于显示一个下拉列表,用户可以从中选择一个选项。当Picker的选中项发生变化时,可以通过Picker.SelectedIndexChanged事件来捕获该变化。

根据提供的问题描述,当在Picker.SelectedIndexChanged事件中调用Navigation.PushModalAsync时,抛出空引用异常可能是由于以下原因之一:

  1. Navigation对象为空引用:在Xamarin Forms中,Navigation对象用于导航到其他页面。如果在当前页面中使用Navigation对象时,它为空引用,就会抛出空引用异常。解决方法是确保在调用Navigation.PushModalAsync之前,Navigation对象已正确初始化。可以通过在页面构造函数中设置NavigationPage对象来实现初始化,例如:
代码语言:txt
复制
public MyPage()
{
    InitializeComponent();
    NavigationPage.SetHasNavigationBar(this, false);
    NavigationPage.SetHasBackButton(this, false);
    NavigationPage.SetTitleView(this, new Label { Text = "My Page" });
}
  1. 页面未正确导航:如果在Picker.SelectedIndexChanged事件中调用Navigation.PushModalAsync时,当前页面并未通过导航到达,也会导致空引用异常。确保在调用Navigation.PushModalAsync之前,已正确导航到当前页面。
  2. 其他可能的原因:除了上述两种情况外,还可能存在其他导致空引用异常的原因,例如在Picker.SelectedIndexChanged事件中使用了未初始化的对象或变量。在排除上述两种情况后,可以仔细检查代码,确保所有相关对象和变量都已正确初始化。

关于Xamarin Forms和C#开发的更多信息,您可以参考腾讯云的Xamarin Forms相关产品和文档:

请注意,以上答案仅供参考,具体解决方法可能因具体情况而异。建议在实际开发中,结合具体代码和调试信息进行问题排查和解决。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台用户界面

Xamarin.Forms 通过使用平台原生控件来渲染用户界面,使用 Xamarin.Forms App在外观上与平台完全一致。...Xamarin.Forms允许开发人员使用C#语言来快速构建UI界面,由于基于Xamarin.Forms开发应用程序完全是原生,它受限很少,例如浏览器沙盒、底层API限制还有性能,相反它完全可以使用底层操作系统提供...Xamarin代码共享方案: ? 开发人员可以通过C#代码来直接构建Xamarin.FormsUI,另外还可以通过 XAML 来构建,运行时行为需要写在你另外一个对应文件中。...页面导航可以理解为一个后进先出堆栈结构,展现一个页面相当于在堆栈中添加一个元素,如果需要回到前一个页面,就需要把当前页面堆栈中删除。...,我们如何安装 Xamarin.Forms,到如何创建一个 Xamarin.Forms 项目,如何构建用户界面,如何进行数据绑定以及如何切换页面。

12.9K70
  • 【重榜?】.NET 6 Preview 1 开箱上手!带你尝试新版本更新!

    多平台统一工具包是基于 Xamarin.Forms 集成和拓展,使得我们可以开发 Windows、MacOS、Android 和 IOS 桌面应用。...C#] Blazor/Xamarin.Forms/Web mobileblazorbindings 不好玩,大家不要试。...回顾一下跨平台 UI 应用,主要提到 Xamarin 和 Blazor,而 .NET6 会出现一个新跨平台 APP UI 框架,叫 MAUI,.NET MAUI是Xamarin.Forms 演进,这个在...可引用类型注释 这个是非常好规范约束,现在 ASP.NET Core 中各个部分都加上了这些注释,可以更加容易地提升项目的编译安全性。...选择使用可为注释项目可能会ASP.NET Core API中看到新生成时警告。 另外 EFCore 也进行了一些更新,没啥影响,这里就不提了。

    3.8K20

    什么是Xamarin

    充分利用 C# 语言优势: Xamarin 使用 C# 编写 App ,可以充分利用 C# 并行编程、泛型以及功能性构造等。...跨移动平台支持: Xamarin iOS、Android 和 Windows 这三个主要平台提供复杂跨平台支持,并且可以在这三个平台共享百分之九十代码。...Mono 执行环境通过托管可调用包装器引入 Android.* 和 Java.* 命名空间,并向 Android 运行时提供 Android 可调用包装器,这使两种环境可以相互调用代码。...它可以让开发人员共享代码生成 iOS、Android 和 Windows 应用程序。 Xamarin.Forms 使用 XAML 来创建 UI 界面。这些 UI 会在不同平台上呈现为本机控件。...从下节开始我将通过贯穿整个专栏例子来讲解 Xamarin.Forms 。这里要提醒各位读者是,这个专栏讲解Xamarin.Forms 知识,它是整个 Xamarin 基础。

    4.4K10

    Visual Studio 2017 15.8 版发行说明

    缩短在大型解决方案中卸载和重载一小组 C# 和 VB 项目的时间 - 数分钟缩短到数秒钟。...在 CPU 使用情况主视图中选择函数时,可从上下文菜单中显示“模块/函数”视图,也可以调用树”或“调用方/被调用方”视图“查看”下拉列表中显示“模块/函数”视图。...我们进行此更改,使该功能与 C# 处理 ref 返回值方式保持一致。 当类型批注指示现在使用 ref 返回值隐式取消引用时,将用到错误消息。...修复了以下 bug:忽略了尝试在内联函数上使用动态调用时用到错误消息。 错误消息现将传送。 F# 现在尊重你可在项目文件中设置 WarningsNotAsErrors 标志。...Xamarin.Forms 预览器 当使用 Xamarin.Forms 3.1.0.583944 版或更高版本时,Xamarin.Forms 预览器现提供工具箱支持。

    8.2K10

    Visual Studio 2019 16.1 更新摘要

    可以通过“工具”>“选项”>“IntelliCode”来启用 C++ 和 JavaScript/TypeScript 支持 我们添加了每监视器感知功能支持。 新codefixes可用于C#。...调试器 源链接已实现身份验证改进。 我们已添加到默认符号服务器列表 nuget.org 符号服务器。 按时间顺序查看调试预览版现在包括异常单步执行支持。...现在可以通过开始窗口中克隆屏幕 SSH URI 克隆代码。...Xamarin.Forms 设计时属性 XAML 建议。 Visual Studio 2019 16.1 已修复问题 无法导航到 ASP.NET MVC 项目插入点下面的符号。...运行应用引用库后,删除了项目中程序集引用。 当将 Visual Studio 2019 RC 更新到 GA 时,Visual Studio RC 快捷方式将被保留。

    5.7K40

    .NET Core跨平台奥秘:历史枷锁

    为了让读者朋友们这个问题具有深刻地理解,我们.NET Framework结构开始讲起。...在开发某种类型用时,我们只需要引用应用模型对应程序集就可以了,也就是说我们开发一个Windows Forms应用,是不需要去引用System.Web.dll程序集。...对于客户端应用(比如Windows Forms/WPF应用)来说,这应该不算是一个大不了问题,但是对于移动和服务端应用(包括部署于云端应用)来说,由此带来性能和吞吐量响应就成了一个不得不考虑问题...Xamarin 2.0由Xamarin.Android、Xamarin.iOS和Xamarin.Windows组成,它们使我们可以采用C#开发针对Android、iOS和WindowsNative应用...2014年5月Xamarin 3.0发布,作为其核心Xamarin.Forms为不同平台Native应用提供统一控件,也就是说我们利用Xamarin.Forms API开发Native应用可以在无需做任何改变情况下运行在

    1.2K50

    .NET MAUI 性能提升(上)

    这提高了任何继承Java类c#成本,因此这是一个比.NET MAUI更广泛改进。 你可能会问,“为什么要使用字符串呢?”使用Java数组似乎比分隔字符串性能影响更大。.../xamarin/xamarin-android/pull/6708 ▌System.Reflection.Emit和构造函数 在使用Xamarin早期,我们有一个Java调用c#构造函数有点复杂方法...新代码显著改进了Java调用任何c#构造函数,因此这个特殊更改改进不仅仅是.NET MAUI。除了.NET 6之外,针对当前客户Xamarin. android最新版本也附带了这一更改。...我们需要确保调试器在附加异常时能够中断,否则将记录c#堆栈跟踪。...System.Globalization.CultureInfo.get_CurrentCulture 实际上,我们甚至不希望在本例中使用区域性比较—它只是Xamarin.Forms引入代码。

    8.6K20

    dotnet 在 UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用

    \NuGet\' 如果忘了这一点复制了 obj 文件夹,可以在 UOS 这个 Linux 系统下删除 obj 文件夹,解决 Xamarin Forms 在 Linux 系统构建失败问题 先忽略Windows...等系统创建好了 Xamarin Forms 方法,咱就在 UOS 上一步步创建 删除 A 项目,也就是安装了 Xamarin Forms 控制台项目, Program.cs 文件 然后选择新建一个...xml 文件,创建完成之后修改命名为 App.xaml 文件,同时创建一个类叫 App.xaml.cs 文件 这两个文件将表示 Xamarin Forms 项目的起始,也就是在 Xamarin启动入口...,也就是 B 项目,引用 Xamarin Forms 项目,也就是 A 项目 ?...但是此时将会发现构建不通过,因为 B 项目,也就是 GTK 项目没有引用足够 NuGet 包。

    2.6K10

    杂谈 System.Drawing.Common 跨平台性(关键词:libgdiplus .NET Core Mono Win32 Linux ……)

    它从 API 级别就分离出 .NET Framework 中不跨平台部分,然后把它们 .NET 核心仓库中移除,换成 .NET 扩展框架(如 WPF / Windows Forms)。...将 net48 框架项目下引用 System.Drawing.Common.dll 反编译来看,可以发现,这是一个程序集,里面几乎没有任何实质上类型。...文件,是个文件,仅用来告诉 NuGet 这个包支持这些框架安装,但不引用任何 dll。...❌相当于没引用 组合2 Mono .NET Standard 2.0 ❌相当于没引用 ❌第三方 NuGet 包管理器会拷贝错误 dll 组合3 IL2CPP .NET 4.x ❌可在编辑器运行,但打包后会出现异常...IL2CPP 里在编辑器里可以正常使用(当然能正常,因为编辑器又没用 IL2CPP),打包后出现异常如下(所有的 System.Drawing 方法调用都有异常): 1 2 NotSupportedException

    2K60

    .NET周报 【5月第1期 2023-05-06】

    文章介绍了用 C# 实现和调用工作流代码示例以及相关机制等。 目前 .NET SDK 处于 Alpha 发布阶段,API 可能会发生变化,但所有功能都已实现,预计不久将发布 Beta 和 GA。...包括错误消息改进以及在 .NET 6 中启用修剪时异常修复等一些修复。 【英文】Fleet 中 C# 支持:解决方案视图、单元测试等!...语言支持和改进 性能 预测性调试器 代码风格 支持 .NET 8 Xamarin.Forms 升级到 .NET MAUI UWP 升级到 WinUI 支持 ARM64 【英文】宣布 Copilot...【英文】在 iOS 16 上使用 .NET MAUI 和 Xamarin.Forms 运行时锁定方向 https://msicc.net/how-to-lock-orientation-at-runtime-on-ios...-16-with-net-maui-and-xamarin-forms/ 关于在 iOS 16 上 .NET MAUI 和 Xamarin.Forms 应用程序如何在运行时锁定旋转方法。

    19910

    Xamarin 社区团队发布了两个新工具包 MAUI 兼容版本

    今天 MauiCompat 版本包括 iOS 和 Android 支持。未来 MauiCompat 版本将包括 iOS、Android、macOS 和 UWP 支持。...✅ 现有的 Xamarin.Forms 应用迁移到 .NET MAUI MauiCompat 库是作为 Xamarin.Forms 迁移到 .NET MAUI 一个有用步骤而创建。...在您 C# 页面中,添加在您 XAML 页面中,添加命名空间属性: xmlns:xct="http://xamarin.com/schemas/2020/toolkit" 使用 Xamarin.CommunityToolkit...prealpha 为了使发布包与 保持一致,我们按照以下步骤操作:MauiCompatXamarin.CommunityToolkit 最新 Xamarin.CommunityToolkit 版本(...特定文件中也有一些引用) 我们记录了转换为 步骤,您可以在此处找到它们: https://github.com/xamarin/XamarinCommunityToolkit/blob/main/MauiCompatSteps.mdXamarin.CommunityToolkitXamarin.CommunityToolkit.MauiCompat

    2.3K10

    国内 Mono 相关文章汇总

    API ,OpenBSD支持,移除了GLib依赖,并有.NET 2.0线程池异常行为。...NET到Mono-记Kooboo CMSMono兼容历程:一、Mono以及移平台基本注意要点 .NET到Mono-记Kooboo CMSMono兼容历程:二、大小写敏感问题,到处都是地雷 ...C#桌面应用程序脱离net framework 把成熟代码.NET移植到Mono Mono喜迁新家-http://www.xamarin.com/ Asp.Net Mvc3在Mono中部署两个问题...产品生命周期 Linux上运行NET Xamarin.Android-用ZXing实现二维码扫描以及连续扫描 Xamarin.Android-捕获未处理异常(全局异常) 为Xamarin更好开发而改写库...CentOS 7.2下安装Mono 5.0 MONO 如何打包 .NET程序独立运行(winform篇) 零開始学Xamarin.Forms(一) 概述 GODOT 3.0 开发进度汇报 #7 .NET

    11.2K60

    客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析

    Xamarin主要有这么几项技术,Xamarin.Android、Xamarin.iOS和Xamarin.Forms,此外还有Xamarin.UWP、Xamarin.Windows、Xamarin.WinPhone...本质都是原生API做了一层C#封装,因此在使用上与原生API会十分相似。这种封装会结合一些C#语法特性,让开发者可以享受C#语法糖。...使用 Visual Studio 在 C# 中编写跨平台应用程序。  Xamarin 允许在每个平台上创建本机 UI,并在 C# 中编写跨平台共享业务逻辑。...Xamarin最为关键技术Xamarin.Forms,把IOS、android、UWP等平台GUI进行了一统地抽象,开发者只需要写一套代码,编译器会在编译时将界面映射到原先控件上,从而获得原生平台外观和性能...Xamarin之前是收费,而且据说收费不菲,所以使用的人数比较少,在国内几乎无人问津。后来Xamarin被微软收购,现已免费开放,但是白学.net开始,就微软东西不感冒了。

    14.5K30
    领券