gpt4 book ai didi

c# - 条目(XAML 表单)对象引用仅对 UWP 应用程序为 null

转载 作者:行者123 更新时间:2023-11-30 17:30:58 25 4
gpt4 key购买 nike

我的 Xamarin.Forms 应用程序中的 Entry 对象有问题。

当我在 Android 设备上使用该应用程序时,没有任何问题。我可以在其中输入文本,然后在 ButtonPressed 事件中使用该文本。但是在 UWP App 上,我的 Entry 对象有一个空引用。在这里你可以找到我的代码和异常(exception):

[using Xamarin.Forms.Xaml;

namespace XamarinTest2.views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Search : ContentPage
{
public Search ()
{
InitializeComponent();
Vid.Text = "lol";
}

void SearchVideo(Object sender)
{
Application.Current.MainPage = new PageFeedYouTube(Vid.Text);
//This line throws NullReferenceException on Vid
}

这是我的 xaml View :

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamarinTest2.views.Search"
Title="Recherche">
<ContentPage.Content>
<StackLayout>
<Label Text="Recherche YouTube!"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Entry Placeholder="Video" Text="" IsVisible="True" IsEnabled="True" IsPassword="True" x:Name="Vid"/>
<Button Text="Recherche" Pressed="SearchVideo" />
</StackLayout>
</ContentPage.Content>

我有点迷茫,为什么我的条目在我的 UWP 应用程序中不起作用?

最佳答案

终于知道问题出在哪里了!它一直隐藏在众目睽睽之下

查看SearchVideo 方法签名:

void SearchVideo(object sender);

现在 Pressed 事件签名:

void Pressed(object sender, EventArgs e);

你现在可能也看到了,对吧😃?问题是您方法的签名与事件预期的不同。出于某种原因,这会抛出 XAML 解析器并破坏 x:Name 绑定(bind),但仍然能够编译!

因此,要解决此问题,您唯一需要做的更改是添加 EventArgs 参数:

private void SearchVideo(object sender, EventArgs e)
{
var ResultPage = new PageFeedYouTube(Vid.Text);
Navigation.PushAsync(ResultPage);
}

我仍然对这个错误的偷偷摸摸感到微笑。哦,好吧,开发人员每天都在学习新东西😁。

关于c# - 条目(XAML 表单)对象引用仅对 UWP 应用程序为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48785111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com