locked
ChildWindows Cast RRS feed

  • Pergunta

  • Boa Noite Pessoal !

    Gostaria de saber se é possível fazer algo como :  ChildWindow win = new (ChildWindow)("views\app\page1.xaml")

    Preciso abrir uma ChildWindow conforme escolha do usuário. Todas as escolhas possuem uma ChildWindow associada.

    Grato 

    Rogerio

    Rogerio
    sábado, 23 de janeiro de 2010 01:23

Respostas

  • Esta é a solução que estava procurando.

    Solução:
                    Type type = Type.GetType("ABC.Views.Register.XYZ_Form");               
                    object chldWindow = Activator.CreateInstance(type);
                    ((ChildWindow)chldWindow).Show();

     

     


    Rogerio
    • Marcado como Resposta Rogério F. _ segunda-feira, 19 de julho de 2010 11:52
    segunda-feira, 19 de julho de 2010 11:52

Todas as Respostas

  • Olá Rogério

    Uma solução, que na minha opinião, é mais adequada, seria a criação de controles que herdam de ChildWindow da seguinte maneira:

    <controls:ChildWindow x:Class="SilverlightApplication1.ChildWindow1"
               xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
               xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
               xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls">
    ...
    </controls:ChildWindow>

    No code-behind:
        public partial class ChildWindow1 : ChildWindow
        {
            public ChildWindow1 ( )
            {
                InitializeComponent ( );
            }

            private void OKButton_Click ( object sender, RoutedEventArgs e )
            {
                this.DialogResult = true;
            }

            private void CancelButton_Click ( object sender, RoutedEventArgs e )
            {
                this.DialogResult = false;
            }
        }

    Voce pode criar vários controles que herdam de ChildWindow, e de acordo com a escolha do usuário, mostrar a ChildWindow apropriada.
    Por exemplo:

    if(escolha == 1)
    {
        ChildWindow window = new ChildWindow1();
        window.Show();
    }
    else if(escolha == 2)
    {
        ChildWindow window = new ChildWindow2();
        window.Show();
    }
    ...

    Breno Ferreira

    Site: http://brsilverlight.com
    Blog: http://brenocferreira.spaces.live.com
    Twitter : http://twitter.com/breno_ferreira

    Se a resposta foi útil, por favor, marque como resposta

    • Marcado como Resposta Daniel Ferreira quarta-feira, 14 de julho de 2010 13:32
    • Não Marcado como Resposta Rogério F. _ segunda-feira, 19 de julho de 2010 11:52
    domingo, 24 de janeiro de 2010 02:24
  • Obrigado Breno pela ajuda,

    Mas não gostaria de fazer desta forma para não ter que ficar fazendo um monte de IF else....

    Abraços,
    Rogerio
    terça-feira, 26 de janeiro de 2010 18:00
  • Esta é a solução que estava procurando.

    Solução:
                    Type type = Type.GetType("ABC.Views.Register.XYZ_Form");               
                    object chldWindow = Activator.CreateInstance(type);
                    ((ChildWindow)chldWindow).Show();

     

     


    Rogerio
    • Marcado como Resposta Rogério F. _ segunda-feira, 19 de julho de 2010 11:52
    segunda-feira, 19 de julho de 2010 11:52