C# 如何在Xamarin表单项目中获取XAML文件中描述的控件?

C# 如何在Xamarin表单项目中获取XAML文件中描述的控件?,c#,xamarin.forms,xamarin.ios,C#,Xamarin.forms,Xamarin.ios,我无法正确获取XAML文件中描述的控件。我给XAML文件中的按钮一个ClassId,并尝试使用FindByName在CS文件中访问它 这是在iOS Emulator中运行的Xamarin表单项目 在MainPage.XAML文件中 当我在iOS Emulator上运行应用程序时,我总是在MainPage.xaml.cs文件中最长的代码行中出现以下错误: public MainPage() { InitializeComponent(); int

我无法正确获取XAML文件中描述的控件。我给XAML文件中的按钮一个ClassId,并尝试使用FindByName在CS文件中访问它

这是在iOS Emulator中运行的Xamarin表单项目

在MainPage.XAML文件中

当我在iOS Emulator上运行应用程序时,我总是在MainPage.xaml.cs文件中最长的代码行中出现以下错误:

    public MainPage()
    {
        InitializeComponent();

        int num = 0;
        ((Button)FindByName("btnNum")).Clicked += (o, e) ((Label)FindByName("myLabel2")).Text = (++num).ToString();
    }
********* 未处理的异常:

System.NullReferenceException:对象引用未设置为实例 物体的形状

*********


感谢您的帮助,如果我能从其他内容页获得有关访问控件的更多信息,那将非常好。

为您的控件指定一个名称

<Button x:Name="MyButton" Text="" />
您需要使用x:Name指令,它可以在Xamarin.Forms中的任何控件中使用

从:

唯一标识XAML命名空间中XAML定义的元素。XAML 命名空间及其唯一性模型可应用于 实例化对象,当框架提供API或实现 在运行时访问XAML创建的对象图的行为

XAML中的用法:

<Label x:Name="myLabel1"
       Text="Xamarin Form Demo" 
       HorizontalOptions="Center"/>

<Button 
       x:Name ="btnNum"
       Text="Image Control" 
       HorizontalOptions="Center" />

非常感谢您的帮助,虽然直接使用其名称引用按钮对我来说不起作用,但ButtonFindByNameBtnum。单击此按钮现在效果非常好!在XAML文件中,名称必须跟在x:,这是什么x:?我是否需要将其用于其他属性?我在Microsoft的元素描述文档中找不到属性名称。x前缀是XAML命名空间。如果这不起作用,那么您的环境有问题。非常感谢@solidcomer别忘了标记为正确并向上投票:D
MyButton.Text = "blah blah blah";
<Label x:Name="myLabel1"
       Text="Xamarin Form Demo" 
       HorizontalOptions="Center"/>

<Button 
       x:Name ="btnNum"
       Text="Image Control" 
       HorizontalOptions="Center" />
myLabel1.Text = "test";
btnNum.Clicked +=