Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Wie ruft man von einer static class die Mainpage auf ?

05.07.2018 (👁3798)


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"/>