这是一个奇怪的问题。还有一点史前史。我正在使用Xamarin cross-platfrom,在为Pages创建接口和派生类方面存在一些限制。
我有一个基于XAML
的页面类,我希望用它来包装Pages
:
<?xml version="1.0" encoding="utf-8" ?>
<NavigationPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Test.UI.View.ExtendedNavigationPage"
BarTextColor="{Binding TextColor}"
BarBackgroundColor="{Binding BgColor}">
</NavigationPage>
及其背后的代码:
public partial class ExtendedNavigationPage
{
public ExtendedNavigationPage(Xamarin.Forms.Page root)
:base(root)
{
InitializeComponent();
BindingContext = new ExtendedNavigationPageViewModel();
}
}
最后,我创建了这样的实例:
ExtendedNavigationPage NavigationPage = new ExtendedNavigationPage(new RootPage());
所以我需要做的是在代码中而不是在XAML
中创建我的类的实例。为什么?因为我无法通过Page
将我的内部ExtendedNavigationPage
对象传递到我的自定义XAML
。
但是一旦我这样做,我的绑定就不起作用了,我觉得在我的对象创建过程中甚至没有使用XAML
代码。我想我错过了对基于XAML
的控件如何初始化的一些理解。
如何从代码中创建
XAML
类的实例并保留我的XAML
的唯一绑定和功能NavigationPage