es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo actualizar un elemento xaml desde otra clase en UWP

Hola a todos, soy principiante en el desarrollo de UWP (Plataforma Universal de Windows) y he buscado mucho en internet, pero no he encontrado la forma correcta de lograr mi objetivo. Lo que me gustaría hacer es actualizar la interfaz de usuario de mi MainPage a través del uso de una clase perteneciente a UiUpdate. Aquí está lo que me gustaría obtener, este es mi MainPage:

namespace Test_App
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }
    }
}

Este es el archivo xaml asociado a mi MainPage:

<page x:class="Test_App.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Test_App" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:ignorable="d" xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls" background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <grid>
        <controls:dockpanel>
            <controls:dockpanel visibility="Visible" horizontalalignment="Left">
                <grid>
                    <textblock x:name="text_one" horizontalalignment="Right" margin="0,50,46,0" verticalalignment="Center" fontweight="Bold"></textblock>
                    <textblock x:name="text_two" horizontalalignment="Left" verticalalignment="Bottom" fontweight="Medium"></textblock>
                </grid>
            </controls:dockpanel>
        </controls:dockpanel></grid>
</page>

Ahora, a través de la clase UiUpdate, me gustaría actualizar mis TextBlocks u cualquier otro elemento de mi interfaz de usuario. Encontré algo así en internet:

await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
             {
                 // Actualizar texbox
             });

Pero no puedo acceder de ninguna manera, desde la clase UiUpdate, a los elementos de texto de la MainPage, no puedo hacer MainPage.text_one …, y tampoco puedo encontrar una buena documentación sobre los patrones a aplicar u otros para la realización de mi aplicación UWP.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para actualizar los elementos de la interfaz de usuario (UI) en tu MainPage a través de una clase perteneciente a la clase UiUpdate, puedes seguir los siguientes pasos:

    1. Crea un método público en tu clase MainPage que pueda ser accedido desde la clase UiUpdate.
    public void UpdateTextBlocks(string textoUno, string textoDos)
    {
        text_one.Text = textoUno;
        text_two.Text = textoDos;
        // actualiza otros elementos de la interfaz de usuario si es necesario
    }
    
    1. En tu clase UiUpdate, crea una instancia de MainPage y llama al método UpdateTextBlocks para actualizar los TextBlocks u cualquier otro elemento de la interfaz de usuario.
    MainPage mainPage = (MainPage)Window.Current.Content;
    await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        mainPage.UpdateTextBlocks("Nuevo texto para el Texto Uno", "Nuevo texto para el Texto Dos");
    });
    

    De esta manera, podrás acceder a los elementos de la interfaz de usuario de MainPage desde la clase UiUpdate y actualizarlos.

    En cuanto a la documentación y patrones a aplicar, puedes consultar la documentación oficial de UWP y las pautas de diseño proporcionadas por Microsoft. Además, existen muchos recursos y tutoriales disponibles en línea que pueden ayudarte con el desarrollo de UWP.

Comments are closed.