Xaml XAMARIN阻止点击ShellContent(DataTemplate)后加载页面
我在android应用程序上取得了一些进展。目前我正在努力找到解决这个问题的办法 (我前面问题中的代码参考) 选择器执行其工作时,此数据模板将被选择为NavigationHeaderTemplateXaml XAMARIN阻止点击ShellContent(DataTemplate)后加载页面,xaml,xamarin,xamarin.forms,xamarin.android,Xaml,Xamarin,Xamarin.forms,Xamarin.android,我在android应用程序上取得了一些进展。目前我正在努力找到解决这个问题的办法 (我前面问题中的代码参考) 选择器执行其工作时,此数据模板将被选择为NavigationHeaderTemplate protected override DataTemplate OnSelectTemplate(object item, BindableObject container) { if (item is ShellGroupItem && list.Contains(((Sh
protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
{
if (item is ShellGroupItem && list.Contains(((ShellGroupItem)item).Title))
{
// Make sure a header item is not clickable.
((ShellGroupItem)item).IsEnabled = false;
return NavigationHeaderTemplate;
}
else
return NavigationItemTemplate;
}
到目前为止,选择器只为每个NavigationHeaderTemplate检查一次(应该是这样的),而对于NavigationItemTemplate,它会在可见性每次更改时进行检查(应该是这样的,虽然不是很理想,但工作正常)
第一次点击NavigationHeaderTemplate后,它只会更改其项目的可见性(这是正确的),但再次点击后,它会更改可见性并转到AboutPage。
正如您在选择阶段所看到的,NavigationHeaderTemplate应设置为禁用
((ShellGroupItem)item).IsEnabled = false;
但不知怎的,在第二次点击时,它变成了大约一页
<ShellContent Title="Header" ContentTemplate="{DataTemplate local:AboutPage}"/>
我的问题是:
如何防止页眉加载页面,它应该只更改项目的可见性(项目用于链接)
这不管用
<ShellContent Title="Header" ContentTemplate="{DataTemplate local:AboutPage}" IsEnabled="False"/>
第一次点击NavigationHeaderTemplate后,它只会更改其项目的可见性(这是正确的),但再次点击后,它会更改可见性并转到AboutPage
<ShellContent Title="Header" ContentTemplate="{DataTemplate local:AboutPage}"/>
您可以尝试通过以下代码更改FlyoutItemTemplateSelector:
public class FlyoutItemTemplateSelector : DataTemplateSelector
{
public DataTemplate NavigationHeaderTemplate { get; set; }
public DataTemplate NavigationItemTemplate { get; set; }
protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
{
if (item is ShellGroupItem && ((ShellGroupItem)item).Title == "Header")
{
// Make sure a header item is not clickable.
((ShellGroupItem)item).IsEnabled = false;
return NavigationHeaderTemplate;
}
else
return NavigationItemTemplate;
}
}
我点击标题一次或多次,它只会更改其项目的可见性。我看不出有什么区别,当标题和项目都有相同的页面时,它只会更改其项目的可见性(但如果项目页面不同,那么当您点击项目时,点击标题后,它会从中加载页面)