将代码添加到登录页面及其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:未将对象引用设置为对象的实例
我将它调试回这些电话:
Content.FindByName<Button>
哪些似乎可以正常工作,因为当我跨过这些行时,它们会无声地失败,但我99%肯定他们有问题: