语境
我正在使用 Exrin 存储库中的 ExrinSampleMobileApp。当我通过滑动显示导航抽屉时,抽屉显示正确。当我单击“设置”导航时,(在我将 MenuOperation 更正为return new NavigationResult(Stacks.Main, Main.Settings);
正确导航后,但抽屉仍位于顶部。
我知道 Xamarin MasterDetailPage 的 IsPresented 应该设置为 false 以隐藏抽屉。我还发现,为此目的,有一个抽象 IMasterDetailContainer 提供了一个属性(也称为 IsPresented)。
问题
但是有一些问题:何时何地将此属性设置为 false 以及如何访问它(我的意思是如何访问 IMasterDetailContainer 实现者?)
在我无法弄清楚所有细节并且无法将 Completed Autofac 构建器添加到 IMasterDetailContainer 实现之后,我决定通过静态引用来尝试它是否有效。不幸的是没有,请参阅带有注释的源代码:
// Note: This code from the otherwise unchanged ExrinSampleMobileApp from the Exrin repository
public class MenuOperation : ISingleOperation
{
public static IMasterDetailContainer Mdc;
private IMasterDetailContainer _masterDetailContainer;
public MenuOperation(IMasterDetailContainer masterDetailContainer)
{
_masterDetailContainer = masterDetailContainer;
}
public Func<object, CancellationToken, Task<IList<IResult>>> Function
{
get
{
return (parameter, token) =>
{
// _masterDetailContainer = false
// Shame, but no DI worked, so this is only for diagnostics (static):
// This set really false, however the drawer remains and navigation freezed.
Mdc.IsPresented = false;
return new NavigationResult(Stacks.Main, Main.Settings);
// Original navigation was:
//return new NavigationResult(Containers.Main, Regions.Main, Stacks.Second, Second.Detail);
};
}
}