自升级到15.5.1以来,我的Xamarin项目似乎不再适用了。
加载页面时,出现此错误:
System.MethodAccessException:方法Xamarin.Forms.View:.ctor()'从方法MyApp.MyPage.InitializeComponent()'
无法访问
然而,这个页面的构建方式与我正在工作的其他页面完全相同,我不知道从哪里开始搜索。这有什么想法来自哪里?我使用Xamarin.Forms插件版本2.5.0.121934。
编辑:这是出现异常的自动生成文件的内容:
public partial class MyPage : global::Xamarin.Forms.ContentPage {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
private void InitializeComponent() {
global::Xamarin.Forms.Xaml.Extensions.LoadFromXaml(this, typeof(MyPage));
}
}
编辑2:
namespace MyApp
{
public partial class MyPage : ContentPage
{
MyPageVM viewModel;
public PNewWeighing(String information)
{
this.InitializeComponent();
viewModel = new MyPageVM();
viewModel.information = information;
BindingContext = viewModel;
}
protected override bool OnBackButtonPressed()
{
viewModel.OnNavigateCancelCommand();
return true;
}
}
}
和
<?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="MyApp.MyPage"
x:Name="MyPage"
NavigationPage.HasBackButton="False"
NavigationPage.HasNavigationBar="False">
<ContentPage.Padding>
<OnPlatform
x:TypeArguments="Thickness"
iOS="20, 40, 20, 20"
Android="20, 20, 20, 20"
WinPhone="20, 20, 20, 20" />
</ContentPage.Padding>
<ContentPage.Content>
<ScrollView>
<Grid
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label
Grid.Row="0"
Grid.ColumnSpan="2"
Text="{Binding Text}"
FontAttributes="Bold" />
<!-- Placeholder -->
<View
Grid.Row="1"
Grid.ColumnSpan="2" />
<!-- General controls -->
</Grid>
</ScrollView>
</ContentPage.Content>
答案 0 :(得分:2)
我不确定但您可以尝试在页面构造函数中使用this.InitializeComponent()吗?
答案 1 :(得分:2)
我遇到了同样的异常,但由于在页面中包含了自定义视图,因此自定义视图构造函数public
为我解决了这个问题