在我的Xamarin.Forms Prism应用程序中,我有一个MasterDetailPage来处理导航。 MasterBehavior设置为Popover。
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:My.Mobile.Application.Views;assembly=My.Mobile.Application"
x:Class="My.Mobile.Application.Frame.MainPage"
MasterBehavior="Popover">
<MasterDetailPage.Master>
<views:MasterPage x:Name="masterPage" />
</MasterDetailPage.Master>
</MasterDetailPage>
当主人可见时,如果我选择已经显示为详细项目的菜单项,则主人不会自动解除;如果我想留在同一页面上,我必须刷掉主人关闭。
我尝试在我主人的列表视图中手动注册到ItemSelected事件,以便能够在MasterDetailPage上显式设置IsPresented = false,但是当选择已经显示的项时,事件不会触发:< / p>
public partial class MainPage : MasterDetailPage
{
public MainPage()
{
InitializeComponent();
masterPage.ListView.ItemSelected += OnItemSelected;
}
private void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
IsPresented = false;
}
}
这与Xamarin.Forms示例Master-Detail应用程序的行为不同,该应用程序在进行选择时关闭主数据(即使它与已经显示的项目相同)。
这是由Prism控制的吗?