如何解决在 Forms UWP 中,自定义标题视图中带有内容视图的后退导航无法与自定义渲染器一起正常工作 说明重现步骤预期行为实际行为截图解决方法
说明
当为内容视图使用自定义渲染器时。它在使用内容控件将内容视图的内容转换为内容展示器时抛出“元素已经是另一个元素的子元素”。
重现步骤
预期行为
实际行为
截图
- 实际输出
- 预期输出
解决方法
请检查以下示例。 CustomControl.zip
谁能帮我解决这个问题?
解决方法
元素已经是另一个元素的子元素"
问题是你的 CustomView
已经被之前的视图引用了,当你导航回来的时候,导航创建了新的 ContentPage 想要使用之前的 CustomView,但是之前的 CustomView 还没有被释放。为了解决这个问题,你可以在页面TitleViewProperty
时将OnDisappearing
设置为null。
protected override void OnDisappearing()
{
base.OnDisappearing();
SetValue(NavigationPage.TitleViewProperty,null);
}
更新
请在 OnAppearing 方法中设置 TitleViewProperty
,如下所示。
protected override void OnAppearing()
{
base.OnAppearing();
SetValue(NavigationPage.TitleViewProperty,new NavigationView());
}
protected override void OnDisappearing()
{
base.OnDisappearing();
SetValue(NavigationPage.TitleViewProperty,null);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。