Problem
Ich möchte von einer allgemeinen Methode in UWP auf die Hauptseite in UWP zugreifen.
Wie kann man die MainPage erreichen oder verweisen?
In der Hauptseite MainPage fügt einen statischen Verweis auf das aktuelle Element ein
public static MainPage Current_Mainpage; |
Und aktiviert diesen bei der Initialisierung
Current_Mainpage = this; |
C# Code der MainPage Seite in C#
namespace app_Robot { public sealed partial class MainPage : Page {
public static MainPage Current_Mainpage; public string Text_Log { get { return Textbox_Log.Text; } set { Textbox_Log.Text = value; } } public MainPage() { this.InitializeComponent(); Current_Mainpage = this;
optStop.IsChecked = false; init_DB(); } |
Auf den anderen Seiten der Anwendung oder auch statischen Klassen kann man dann mit einem einfachen Verweis auf die aktuelle MainPage bezug nehmen
MainPage mainPage = MainPage.Current_Mainpage; string sText = mainPage.Text_Log;
|
Beispiel: System Meldung soll ausgegeben werden auf der aktuellen MainPage
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //< using > using Windows.UI.Popups; //*MessageDialog using app_Robot; //*MainPage //</ using >
public static class clsSys { public async static void show_Message(string sMessage) { MessageDialog dialog = new MessageDialog(sMessage, "Information"); await dialog.ShowAsync(); }
public static void fx_Log(string sLog) { //------------< fx_Log() >------------ //* log Text to Textbox
MainPage mainPage = MainPage.Current_Mainpage; string sText = mainPage.Text_Log; sText = DateTime.Now + " " + sLog + Environment.NewLine + sText; if (sText.Length > 50000) { sText = sText.Substring(50000); } mainPage.Text_Log = sText; mainPage.UpdateLayout();
//< refresh >
//</ refresh > //------------</ fx_Log() >------------ } } |
MainPage Ausgabe-Control
Ich möchte den Text auf das XAML TextBlock Element ausgeben
<TextBox x:Name="Textbox_Log" Height="385" Margin="20,244,-317,0" TextWrapping="Wrap" Text=".." VerticalAlignment="Top"/> |