locked
Exibir Mensagens Diferente Usando MessageDialog no Windows Phone 8.1 RRS feed

  • Pergunta

  • Como faço para exibir duas mensagens usando MessageDialog do Windows Phone 8.1?

    Tenho dois métodos, um chamado exibirConteudo() e o outro chamado esvaziarDesodorante(). Cada um deles tem uma mensagem, quando excuto o programa, o primeiro método é chamado, mas quando o segundo método é chamado é exibida uma mesangem de erro:

    An exception of type 'System.UnauthorizedAccessException' occurred in App6.exe but was not handled in user code Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)

    Como faço para exibir as mensagens contidas nos dois métodos sem ter este erro?

    Segue o código abaixo:

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Runtime.InteropServices.WindowsRuntime;
    using Windows.Foundation;
    using Windows.Foundation.Collections;
    using Windows.UI.Xaml;
    using Windows.UI.Xaml.Controls;
    using Windows.UI.Xaml.Controls.Primitives;
    using Windows.UI.Xaml.Data;
    using Windows.UI.Xaml.Input;
    using Windows.UI.Xaml.Media;
    using Windows.UI.Xaml.Navigation;
    
    // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=391641
    
    namespace App6
    {
        /// <summary>
        /// An empty page that can be used on its own or navigated to within a Frame.
        /// </summary>
        public sealed partial class MainPage : Page
        {
            public MainPage()
            {
                this.InitializeComponent();
                Desodorante desodorante1 = new Desodorante();
                desodorante1.capacidade = 10.37;
                desodorante1.tipoMaterial = "Plástico";
                desodorante1.exibirConteudo();
                desodorante1.esvaziarDesodorante();
    
                this.NavigationCacheMode = NavigationCacheMode.Required;
            }
    
            /// <summary>
            /// Invoked when this page is about to be displayed in a Frame.
            /// </summary>
            /// <param name="e">Event data that describes how this page was reached.
            /// This parameter is typically used to configure the page.</param>
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                // TODO: Prepare page for display here.
    
                // TODO: If your application contains multiple pages, ensure that you are
                // handling the hardware Back button by registering for the
                // Windows.Phone.UI.Input.HardwareButtons.BackPressed event.
                // If you are using the NavigationHelper provided by some templates,
                // this event is handled for you.
            }
        }
    }

    Código da Classe Desodorante

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Windows.UI.Popups;
    
    namespace App6
    {
        public class Desodorante
        {
            public string tipoMaterial;
            public double capacidade;
    
    
            public async void exibirConteudo()
            {
                var dados_desodorante = new MessageDialog("Tipo de Material: " + tipoMaterial + "\n" + "Capacidade: " + capacidade + " ml");
                dados_desodorante.Title = "Dados da Classe Desodorante";
                dados_desodorante.Commands.Add(new UICommand { Label = "Ok" });
                await dados_desodorante.ShowAsync();
            }
            public async void esvaziarDesodorante()
            {
                var saida = new MessageDialog("Esvaziando o Desodorante !!!!");
                saida.Commands.Add(new UICommand { Label = "Ok" });
                await saida.ShowAsync();
            }
    
        }
    }


    No aguardo dos usuários para que possa resolver este pequeno detalhe, ao mostrar duas mensagens no WP 8.1, criando uma Classe e exibindo seus atributos e métodos, conforme código acima.




    • Editado Marcos SJ quarta-feira, 14 de outubro de 2015 12:24 Edição
    quarta-feira, 14 de outubro de 2015 10:55

Respostas

  • Olá.

    Uma chamada deve estar se sobrepondo a outra. Tente mover o codigo que está no construtor e passe para o método OnNavigatedTo e marque ele como async

    Abraço,

    Alexandre Dias


    Alexandre Dias Simões

    • Marcado como Resposta Marcos SJ quinta-feira, 22 de outubro de 2015 12:41
    sexta-feira, 16 de outubro de 2015 21:11

Todas as Respostas

  • Olá.

    Uma chamada deve estar se sobrepondo a outra. Tente mover o codigo que está no construtor e passe para o método OnNavigatedTo e marque ele como async

    Abraço,

    Alexandre Dias


    Alexandre Dias Simões

    • Marcado como Resposta Marcos SJ quinta-feira, 22 de outubro de 2015 12:41
    sexta-feira, 16 de outubro de 2015 21:11
  • Bom dia,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente

    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 22 de outubro de 2015 12:41