从代码创建基于XAML的类的实例,同时保留XAML绑定

时间:2015-08-06 13:39:33

标签: c# xaml xamarin code-behind

这是一个奇怪的问题。还有一点史前史。我正在使用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

0 个答案:

没有答案