Xamarin.forms 在Forms UWP中,自定义标题视图中内容视图的反向导航无法正确使用自定义渲染器 描述

Xamarin.forms 在Forms UWP中,自定义标题视图中内容视图的反向导航无法正确使用自定义渲染器 描述,xamarin.forms,xamarin.uwp,custom-renderer,Xamarin.forms,Xamarin.uwp,Custom Renderer,为内容视图使用自定义渲染器时。当使用内容控件将内容视图的内容转换为内容呈现者时,它抛出“元素已经是另一个元素的子元素” 复制步骤 运行附带的样本 导航到子页面并向后导航 内容视图被隐藏,页面未正确导航回 在自定义呈现程序的on-element-changed方法中引发异常 预期行为 页面应该像第二次一样使用内容视图正确地导航回来 实际行为 第一次,页面并没有被正确地导航回来,内容视图也消失了 截图 实际产量 预期产量 变通办法 请检查下面的样品。 有人能帮我吗? 元素已经是另一个元

为内容视图使用自定义渲染器时。当使用内容控件将内容视图的内容转换为内容呈现者时,它抛出“元素已经是另一个元素的子元素”

复制步骤
  • 运行附带的样本
  • 导航到子页面并向后导航
  • 内容视图被隐藏,页面未正确导航回
  • 在自定义呈现程序的on-element-changed方法中引发异常
  • 预期行为 页面应该像第二次一样使用内容视图正确地导航回来

    实际行为 第一次,页面并没有被正确地导航回来,内容视图也消失了

    截图
    • 实际产量

    • 预期产量

    变通办法 请检查下面的样品。

    有人能帮我吗?

    元素已经是另一个元素的子元素“

    问题是您的
    CustomView
    已被上一个视图引用,当您返回导航时,导航将创建想要使用上一个CustomView的新内容页面,但上一个CustomView尚未发布。要解决此问题,您可以在页面
    OnDisappearingTitleViewProperty
    设置为nullode>

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        SetValue(NavigationPage.TitleViewProperty, null);
    }
    
    更新

    请在OnAppearing方法中设置标题属性,如下所示

    protected override void OnAppearing()
    {
        base.OnAppearing();
        SetValue(NavigationPage.TitleViewProperty, new NavigationView());
    }
    
    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        SetValue(NavigationPage.TitleViewProperty, null);
    }
    

    感谢@nico zhu msft,但当导航回主页时,自定义视图仍会消失。请检查上述案例更新,并在OnAppearing方法中设置
    标题属性
    ,以替换构造函数方法。