locked
Setar Content da página (pai) a partir de uma ChildWindow RRS feed

  • Pergunta

  • Tenho na aplicação uma ChildWindow que possui alguns atalhos para outras xaml's, preciso que no clique do usuário a janela CW seja fechada e na pai seja setada o xaml correspondente ao botão clicado, é possível fazer isto?
    Guilherme Carvalho
    segunda-feira, 13 de junho de 2011 11:42

Respostas

  • Sei que não deve ser a melhor solução, mas resolvi colocando uma variável pública na CW, aí no evento Closed() eu verifico esta variável e por ela seto o content da janela Pai.

     

    Se alguém tiver a solução correta para acessar a janela que chamou a janela filha, favor enviar.


    Guilherme Carvalho
    segunda-feira, 13 de junho de 2011 18:44

Todas as Respostas

  •  

    Guilherme.

     

    Se eu entendi corretamente... vc quer saber quando o CW foi fechada e passar um conteudo da CW através de propriedade ?

     se for isso e bem simples.  

    segunda-feira, 13 de junho de 2011 13:46
  • Na verdade não, eu tenho uma CW com botões de atalhos que ao serem clicados devem setar o content da janela que chamou esta CW, com a janela correspondente, Exemplo

     

    Janela Pai(index.xaml) -> clico no botão para chamar CW(atalhos.xaml) -> Janela abre com o botão (btnIndex2), este botão ao ser clicado chama o index2.xaml que deve ser setado na tela pai, ou seja eu tenho que fechar esta janela atalhos.xaml e setar o content da janela pai que antes era index.xaml para index2.xaml.

     

    Obs. Estes nomes foram usados apenas para o exemplo.


    Guilherme Carvalho
    segunda-feira, 13 de junho de 2011 14:20
  • Você pode criar pages novas e utilizar um frame na MainPage, então vc mostra a CW apartir da MainPage e  cada atalho clicado na CW vc fecha a CW e passa o caminho da page que deseja navegar no evento closed na CW...  (agora se vc predende gerar uma page apartir de um texto com formato do xaml em runtime, não sei se é possivel. ) 

     

    exemplo do codigo 

    //CS da MainPage onde esta o frame

     

    ChildWindow1 cw = new ChildWindow1();

     

    cw.Closed += (s, e) =>

    {

       frameMainPage.Navigate(new Uri("/(diretorio)/cw.button1.tag", UriKind.Relative)); 

      //codigo para navigation no frame,  tipo se vc quiser pode quardar o caminho da page.xaml na propriedade TAG do button, ou de qual componente quiser para atalho.

    // vc escolhe a forma

    }

     

    cw.Show();

     

     

    então na CW.cs  vc coloca no event click do botao

    {

       this.DialogResult = true;

    }

     

    Espero ter entendido o que tentou dizer...  

    segunda-feira, 13 de junho de 2011 16:34
  • No caso eu não posso trabalhar com frame na MainPage, o que estou tentando fazer é algo do tipo, como "identificar" de qual xaml foi chamada a CW, para que eu possa fazer algo do tipo

    parent.content = index2.xaml;

     

    Seria algo assim que estou tentando fazer, identificar que página "parent" chamou a ChildWindow.


    Guilherme Carvalho
    segunda-feira, 13 de junho de 2011 17:11
  • Humm... entendo mas então não sei como fazer. =/
    segunda-feira, 13 de junho de 2011 18:10
  • Sei que não deve ser a melhor solução, mas resolvi colocando uma variável pública na CW, aí no evento Closed() eu verifico esta variável e por ela seto o content da janela Pai.

     

    Se alguém tiver a solução correta para acessar a janela que chamou a janela filha, favor enviar.


    Guilherme Carvalho
    segunda-feira, 13 de junho de 2011 18:44