xamarin:找不到名为“HasBackButton”的属性或名为“GetHasBackButton”的静态方法

时间:2016-11-18 18:36:32

标签: xamarin.android

<ContentPage Title="Introduction"
             NavigationPage.HasBackButton="False"
             xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Xamarin.IntroductionPage">

我看到其他一些视频教程,他们对NavigationPage.HasBackButton =“False”没有问题但是在我的Visual Studio上使用Xamarin会产生构建错误

Can not find a property named "HasBackButton" or static method named "GetHasBackButton" ...

可能导致这种情况的原因是什么?感谢

2 个答案:

答案 0 :(得分:2)

我也看到了同样的问题。似乎是XAMLC编译器由于某种原因没有正确处理附加属性。如果你在程序集级别有一个XamlCompilation属性,你可以将它注释掉,问题就会消失,直到找到合适的解决方案。

经过更多研究后我发现XAMLC最近必须更改,现在希望附加可绑定属性的Get / Set方法的第一个参数是BindableObject类型。不幸的是,NavigationPage.GetHasBackButton和NavigationPage.SetHasBackButton都期望将Page作为其第一个参数。由于NavigationPage是由平台提供的,因此唯一的解决方法似乎是注释掉XamlCompilation属性或删除XAML中的NavigationPage.HasBackButton行,并将其移动到编译后面的代码,没有任何问题:

public class MyContentPage : ContentPage  
{  
    InitializeComponent();  

    NavigationPage.SetHasBackButton( this, false );  
}  

希望Xamarin尽快为这种回归提供修复。

答案 1 :(得分:0)

有同样的错误。

删除* .cs中的[XamlCompilation(XamlCompilationOptions.Compile)]就可以了。