在类型`Xamarin.Forms.View'中找不到方法FindByName或无法解析类型:Content.FindByName

时间:2015-09-28 02:03:48

标签: c# methods xamarin xamarin.forms

将代码添加到登录页面及其ViewModel后,我收到以下错误:

  

在类型`Xamarin.Forms.View'

中找不到方法FindByName

  

无法解析类型:Content.FindByName

这是导致它的代码:

df

以下是页面内容:

>>> from pylab import *
>>> figure()
>>> plot(arange(10))
>>> tick_params(axis='y', which='both', left='off', right='off', labelleft='off')
>>> show()

此代码以前工作,唯一的变化是LoginPageViewModel,添加了一个Login方法:

protected override void OnAppearing()
{
    base.OnAppearing();
    string platformName = Device.OS.ToString();
    //THESE NEXT TWO LINES IS WHERE THE **REAL** PROBLEM OCCURS
    Content.FindByName<Button>("loginButton" + platformName).Clicked += OnLoginClicked;
    Content.FindByName<Button>("helpButton" + platformName).Clicked += OnHelpClicked;
}

有任何想法导致<ContentPage.Content> <OnPlatform x:TypeArguments="View"> <OnPlatform.iOS> <StackLayout VerticalOptions="StartAndExpand" Padding="30"> <Image Source="logo" /> <Entry StyleId="UserId" Text="{Binding Path=Username}" Placeholder="Username" /> <Entry StyleId="PasswordId" Text="{Binding Path=Password}" Placeholder="Password" IsPassword="true" /> <Grid HorizontalOptions="Center"> <Button x:Name="loginButtoniOS" Text="Login" Grid.Row="0" Grid.Column="0" Style="{StaticResource ButtonStyle}" /> <Button x:Name="helpButtoniOS" Text="Help" Grid.Row="0" Grid.Column="1" Style="{StaticResource ButtonStyle}" /> </Grid> </StackLayout> </OnPlatform.iOS> 方法失败的原因吗?

它会导致应用程序崩溃,因为当它为null时分配给public async Task<bool> Login() { ... 事件。所以我看到的错误是:

  

System.NullReferenceException:未将对象引用设置为对象的实例

enter image description here

我将它调试回这些电话:

Content.FindByName<Button>

哪些似乎可以正常工作,因为当我跨过这些行时,它们会无声地失败,但我99%肯定他们有问题:

enter image description here

1 个答案:

答案 0 :(得分:0)

看起来它只是一个更红的。我评论出了我认为是问题的线条并启用了例外:

enter image description here

当用户未登录时,我从LandingPage重定向到LoginPage。此另一页正在点击Object Ref。未设置为对象的实例。