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

C# Xamarin Forms -调用事件总是返回null

C# Xamarin Forms是一种跨平台移动应用程序开发框架,可以通过使用C#语言编写一次代码,然后在iOS、Android和Windows等多个平台上运行。在使用Xamarin Forms调用事件时,有时可能会遇到事件返回null的情况。

出现这种情况通常是由于以下原因之一:

  1. 事件绑定错误:请确保在XAML文件中正确地将事件绑定到相应的命令或方法。检查事件绑定的名称和路径,确保与代码中的对应方法名称一致。
  2. 控件未正确初始化:如果事件绑定为控件的某个事件,可能是因为该控件还没有被正确初始化,导致事件返回null。在调用事件之前,确保控件已被正确实例化和赋值。
  3. 上下文错误:有时事件可能返回null是因为未正确设置事件的上下文。请确保事件的上下文正确设置为当前视图或页面的上下文对象。

为了更具体地解决该问题,需要提供更多的代码和上下文信息。以下是一些建议的步骤来进一步调试和解决该问题:

  1. 检查事件绑定的XAML代码,确保正确指定事件和命令的名称,以及路径是否正确。
  2. 在代码中检查控件的实例化和赋值过程,确保控件已正确初始化。
  3. 使用调试器,逐步调试代码,查看事件的调用过程,以及事件返回null的具体原因。
  4. 确认事件的上下文是否正确设置,可以通过查看事件调用过程中的上下文对象来验证。

对于Xamarin Forms的开发,腾讯云提供了一些相关产品和服务,可以帮助开发者更好地构建和扩展移动应用程序。您可以参考以下腾讯云的产品和服务:

  • 腾讯云移动应用开发平台:https://cloud.tencent.com/product/madp
  • 腾讯云移动推送服务:https://cloud.tencent.com/product/umeng
  • 腾讯云移动分析服务:https://cloud.tencent.com/product/mobile-analytics

请注意,这些链接仅提供了一些示例,并不代表一定适用于您的具体情况。在选择适合的腾讯云产品和服务时,请根据您的需求和实际情况进行评估和决策。

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

相关·内容

C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码

Xamarin由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者——C#与·NET框架的开源、跨平台实现。 (以上摘自百度百科) 那么什么是Xamarin.Forms?...(意思就是可移植的UI) 本系列介绍了Xamarin.Forms开发的基础知识,涵盖了多平台和多屏应用的构建。 Xamarin.Forms是一个允许开发人员快速创建跨平台UI界面的框架。...Xamarin.Forms允许快速创建应用程序,随着时间的推移,应用程序可以演变为复杂的应用程序。 由于Xamarin.Forms应用程序是原生应用程序,因此它没有其他的使用限制。...为什么要学习Xamarin.Forms?...地址如下: C#开发移动应用系列(4.调用系统应用,以及第三方应用(调用与被调用)) 说一下为什么先写Xamarin.Android,因为你要开发移动APP,对于一些移动开发概念的了解是必须的,并不是说

5.3K61
  • Xamarin 学习笔记 - Page(页面)

    在本章中,我将开始在Xamarin.Forms中展示我们页面的结构。 Xamarin.Forms基于Page页面的概念,我们可以使用XAML创建一个应用程序来设计我们的页面以及后台的C#代码。...在2017年11月,.NET Standard进入了Xamarin.Forms的项目模板。...Xamarin.Forms提供了许多可用的页面,以允许提出各种不同的导航体验。为了精确的定义什么是一个Xamarin.Forms.Page的示例,官方的文档给出了一个清晰而简明的定义。...当我们需要从一个页面导航到另一个页面时,我们可以有一组函数可以调用。...我们通过C#代码创建了一个TabbedPage: <TabbedPage xmlns="http://<em>xamarin</em>.com/schemas/2014/<em>forms</em>" xmlns:x="http://schemas.microsoft.com

    4.6K20

    Xamarin 技术全解析

    另外Xamarin还提供了Xamarin.Forms UI工具包,Xamarin.Forms可以帮助开发人员快速的构建跨平台的UI,通过一次编码,生成多个平台的原生UI界面,稍后本文会讲述Xamarin.Forms...如果先了解更多关于如何使用Xamarin.Forms构建跨平台应用,请参见文章:Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面。 3....C#代码都通过ACW的方式被调用。...Managed Callable Wrapper(MCW) 如果需要在C#调用一些系统的功能或者Java实现的类库,该如何调用那?...答案就是MCW,MCW就是一个JNI桥梁,可以使用托管代码调用Android的代码。MCW将整个Android.* 以及相关的命名空间通过 jar绑定的方式暴露出来,是的C#可以调用

    5.9K70

    什么是Xamarin

    充分利用 C# 语言的优势: Xamarin 使用 C# 编写 App ,可以充分利用 C# 的并行编程、泛型以及功能性构造等。...Mono 执行环境通过托管可调用包装器引入 Android.* 和 Java.* 命名空间,并向 Android 运行时提供 Android 可调用包装器,这使的两种环境可以相互调用代码。...Xamarin.Essentials 提供的功能包括: 设备信息 文件系统 加速计 电话拨号程序 文本到语音转换 屏幕锁定 5.Xamarin.Forms Xamarin.Forms 是一个开源 UI...Xamarin.Forms 使用 XAML 来创建 UI 界面。这些 UI 会在不同平台上呈现为本机控件。...从下节开始我将的通过贯穿整个专栏的例子来讲解 Xamarin.Forms 。这里要提醒各位读者的是,这个专栏讲解的是 Xamarin.Forms 的知识,它是整个 Xamarin 的基础。

    4.4K10

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

    Xamarin.Forms允许开发人员使用C#语言来快速构建UI界面,由于基于Xamarin.Forms开发的应用程序完全是原生的,它的受限很少,例如浏览器沙盒、底层API限制还有性能,相反它完全可以使用底层操作系统提供的...Xamarin的代码共享方案: ? 开发人员可以通过C#代码来直接构建Xamarin.Forms的UI,另外还可以通过 XAML 来构建,运行时的行为需要写在你另外一个对应的文件中。...Phone 应用程序 在Xamarin Studio中,选择 File > New > Solution, 当New Solution对话框出现后,点击 C#>Mobile Apps, 然后选择 Blank...该页面包含了下列的控件: · Xamarin.Forms.Image · Xamarin.Forms.Label · Xamarin.Forms.Entry · Xamarin.Forms.Button...LoginPage()); 返回原有页面: await Navigation.PopModalAsync(); 小结 本文讨论了 Xamarin.Forms 是什么,以及如何使用 Xamarin.Forms

    12.9K70

    张高兴的 Xamarin.Forms 开发笔记:TapGestureRecognizer 的简单介绍与应用

    Forms 里的大多数控件都继承自 View 类,而 View 类中有一个公共属性 GestureRecognizers,因此控件都可以添加各种手势识别。...当然手势不止 Tap 这一种,更多的可以在 Xamarin 的指南中了解:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals...C# 代码 var tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.NumberOfTapsRequired...YourControl.GestureRecognizers.Add(tapGestureRecognizer); 三、应用   写了一个小小的 Demo (GitHub:https://github.com/ZhangGaoxing/xamarin-forms-demo...为没有 Clicked 事件的控件添加假的 Clicked 事件   换句大白话来说,就是点击一个控件触发一个事件。这里以 Label 举例,点击 Label 以“0”和“1”变化。

    1K20

    张高兴的 Xamarin.Forms 开发笔记:TapGestureRecognizer 的简单介绍与应用

    Forms 里的大多数控件都继承自 View 类,而 View 类中有一个公共属性 GestureRecognizers,因此控件都可以添加各种手势识别。...当然手势不止 Tap 这一种,更多的可以在 Xamarin 的指南中了解:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals...C# 代码 var tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.NumberOfTapsRequired...YourControl.GestureRecognizers.Add(tapGestureRecognizer); 三、应用   写了一个小小的 Demo (GitHub:https://github.com/ZhangGaoxing/xamarin-forms-demo...为没有 Clicked 事件的控件添加假的 Clicked 事件   换句大白话来说,就是点击一个控件触发一个事件。这里以 Label 举例,点击 Label 以“0”和“1”变化。

    79870

    C#移动跨平台开发(2)Xamarin移动跨平台解决方案是如何工作的?

    那这里的问题是当我们用C#来编写的时候,这些功能怎么去调用C#写的Android 应用程序又是如何初始化的?...那个Dalvik虚拟机实体就像一个宿主,我们的APP在宿主上运行,而我们所有用C#写的方法都会以ACW的形式被调用。...Managed Callable Wrappers (MCW)   上面我们讲Dalvik 虚拟机是我们C#开发的Android应用程序的宿主,它通过ACW来调用我们用C#写的方法。...在C#运行时中去调用Java 称之为MCW。   ...,当然在Xamarin.Forms不能够满足你的要求的时候,可以使用Xamarin.Android和Xamarin.IOS的UI控件,这些也是Native的,也就是说在UI方面不会有性能的影响。

    2.6K110

    C# 跨设备前后端开发探索

    每个人都拥有 好奇心,好奇心驱使着我们总是去尝试做一些有趣的事情。 带起你的好奇心,本文将使用 C# 开发各种各样好玩的东西。...我们现在要拿 C# 写客户端,一般 C# 或者 .NET 的开发者拿什么来写桌面客户端呢? WPF 或者 Windows Forms 应用程序 公共代码 我们现在已经有至少两个端了。...使用 Xamarin 可以帮助我们完成这样的任务。...关于使用 Xamarin.Forms 开发一个键盘扩展,可以阅读我的另一篇博客: 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) Web 前端 于是,我们仅仅使用 C# 还有客户端开发者熟悉的...还有其他…… 0x03 终章 每个人都拥有 好奇心,好奇心驱使着我们总是去尝试做一些有趣的事情。

    25130

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

    我们知道程序集是.NET最基本的部署单元,不论定义其中的多少类型被使用,CLR总是将整个程序集加载到内存中。...一方面BCL总是作为一个不可分割的整体被加载,另一方面其自身的尺寸也在随着.NET Framework的升级而不断地膨胀。...Miguel de Icaza在2001年7月开启了Mono这个项目,并采用C#作为主要的开发语言(目前支持VB .NET),所以针对CLI和C#的两个ECMA规范是构建Mono项目的理论基础,如果访问...Xamarin 2.0由Xamarin.Android、Xamarin.iOS和Xamarin.Windows组成,它们使我们可以采用C#开发针对Android、iOS和Windows的Native应用...2014年5月Xamarin 3.0发布,作为其核心的Xamarin.Forms为不同平台的Native应用提供统一的控件,也就是说我们利用Xamarin.Forms API开发Native应用可以在无需做任何改变的情况下运行在

    1.2K50

    Windows桌面程序开发

    最初考虑到团队的技术构成(没有.NET开发),决定用Electron作为解决方案来开发,但是最后因为需要实现应用向其它未处于激活状态的应用发消息的功能无法通过自带的api实现(需要借助node-ffi调用...Xamarin 毋庸置疑,当你想通过 C# 来构建移动应用(IOS,Android 和 Windows Mobile),Xamarin 是你唯一的选择。....NET Core 3.0 目前支持 WPF 和 Windows Forms,.NET Core 3.0 同样也支持在 UWP, WPF 和 Windows Forms 之间进行混合开发。...结论 对C++开发不熟 所以C++的方案就不考虑了 Java并不适合桌面开发,其它的语言没用过也暂不考虑 C#的Winform、WPF要想操作其它程序也需要调用DLL 和 用Electron区别不大,所以还是用...Electron来搞了 下一篇再来介绍Electron调用DLL的方式

    10.8K10
    领券