WIP: page setup minus my-stuff

This commit is contained in:
Ray committed 2021-08-03 17:43:16 +01:00
1 parent d302425b88
commit 8d69e7ffab
15 files changed
+300 -116

No files matched your search

+56 -23
View File
@@ -1,45 +1,69 @@
using Xamarin.Forms;
using System;
using Xamarin.Forms;
namespace MobileApp1.Views
{
public class ContentPageHelper
{
public static App GetApp(ContentPage view)
public static App GetApp(ContentPage view) => GetParentElement<App>(view);
public static Application GetApplication(ContentPage view) => GetParentElement<Application>(view);
public static MainPage GetMainPage(ContentPage view) => GetParentElement<MainPage>(view);
public static T GetParentElement<T>(ContentPage view)
{
if (view == null) return null;
if (view == null) return default(T);
Element item = view.Parent;
while (true)
{
if (item == null) break;
if (item is App) break;
if (item is T) break;
item = item.Parent;
}
return (item as App);
}
public static Application GetApplication(ContentPage view)
{
if (view == null) return null;
Element item = view.Parent;
while (true)
try
{
if (item == null) break;
if (item is Application) break;
item = item.Parent;
return (T)Convert.ChangeType(item, typeof(T));
}
catch (InvalidCastException)
{
return default(T);
}
return (item as Application);
}
public static void SetMainPage(ContentPage view, Page page)
public static void SetDetailPage(ContentPage view, Type pageType, bool useNavigationPage = true) => SetDetailPage(view, (Page)Activator.CreateInstance(pageType), useNavigationPage);
public static void SetDetailPage(ContentPage view, Page page, bool useNavigationPage = true)
{
if (view == null) return;
if (view.Parent == null) return;
if (page == null) return;
MainPage rs = GetMainPage(view);
if (rs == null)
{
return;
}
Device.BeginInvokeOnMainThread(() =>
{
if (useNavigationPage)
{
rs.Detail = new NavigationPage(page);
}
else
{
rs.Detail = page;
}
});
}
public static void SetMainPage(ContentPage view, Page page, bool useNavigationPage = false)
{
if (view == null) return;
if (view.Parent == null) return;
@@ -51,8 +75,17 @@ namespace MobileApp1.Views
return;
}
//rs.MainPage = new NavigationPage(new PasswordResetPage());
rs.MainPage = page;
Device.BeginInvokeOnMainThread(() =>
{
if (useNavigationPage)
{
rs.MainPage = new NavigationPage(page);
}
else
{
rs.MainPage = page;
}
});
}
public static async void PushMainPageNavigation(ContentPage view, Page page)
+4 -49
View File
@@ -6,24 +6,13 @@ namespace MobileApp1.Views
public class ContentViewHelper
{
public static ContentPage GetContentPage(ContentView view)
{
if (view == null) return null;
public static App GetApp(ContentView view) => GetParentElement<App>(view);
Element item = view.Parent;
public static Application GetApplication(ContentView view) => GetParentElement<Application>(view);
while (true)
{
if (item == null) break;
if (item is ContentPage) break;
public static ContentPage GetContentPage(ContentView view) => GetParentElement<ContentPage>(view);
item = item.Parent;
}
return (item as ContentPage);
}
public static T GetContentPage<T>(ContentView view)
public static T GetParentElement<T>(ContentView view)
{
if (view == null) return default(T);
@@ -47,40 +36,6 @@ namespace MobileApp1.Views
}
}
public static App GetApp(ContentView view)
{
if (view == null) return null;
Element item = view.Parent;
while (true)
{
if (item == null) break;
if (item is App) break;
item = item.Parent;
}
return (item as App);
}
public static Application GetApplication(ContentView view)
{
if (view == null) return null;
Element item = view.Parent;
while (true)
{
if (item == null) break;
if (item is Application) break;
item = item.Parent;
}
return (item as Application);
}
public static void SetMainPage(ContentView view, Page page)
{
if (view == null) return;