Usuário com melhor resposta
Iniciante. Ajuda em chamar método em ChildWindow

Pergunta
-
Amigos,
Estou desenvolvendo um ERP com WCF e SilverLight 3.
Decidimos que todas as nossas telas serão do tipo ChildWindows. Dessa forma, eu tenho um método private que exibe todos os grupos cadastrados em um grid assim que o usuário entra na tela. Ele também é chamado por outros métodos, como por exemplo, assim que o usuário exclui um grupo. Veja o método abaixo:
private void ExibirGrupos()
{
MyServiceClient Proxy = new MyServiceClient();
Proxy.ObtenhaGruposCadastradosAsync(txtProcurarPor.Text);
Proxy.ObtenhaGruposCadastradosCompleted += new EventHandler<ObtenhaGruposCadastradosCompletedEventArgs>(Proxy_ObtenhaGruposCadastradosCompleted);
Proxy.CloseAsync();
Proxy.CloseCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(Proxy_CloseCompleted);
}
Nesta tela de consulta, há o botão para incluir, que chama a tela de cadastro desta forma:
private void agMenuIncluir_Click(object sender, EventArgs e)
{
CadGrupoProduto cadGrupoProduto = new CadGrupoProduto();
cadGrupoProduto.Show();
}
O que eu não estou conseguindo realizar é: Após o usuário ter cadastrado os grupos, assim que ele fecha a tela de cadastro, eu possa chamar o método para exibir os grupos cadastrados, e desta forma, exibir todos os registros novamente.
Como eu venho de programação Windows, eu pensei que assim que fosse chamado o método para exibir a janela de cadastro desta forma: cadGrupoProduto.Show(), o programa ficasse parado por ser um janela Modal, mas percebi que não é bem assim.
Por favor alguém poderia ajudar?
Respostas
-
Olá Marcelos
O evento será declarado (conforme explicado acima) na segunda tela, que, se eu entendi corretamente, é a ChildWindow de cadastro. Na primeira tela voce irá tratar este evento.
Por exemplo:
private void agMenuIncluir_Click(object sender, EventArgs e)
{
CadGrupoProduto cadGrupoProduto = new CadGrupoProduto();
cadGrupoProduto.OnClosed += new EventHandler (cadGrupoProduto_OnClosed);
cadGrupoProduto.Show();
}private void cadGrupoProduto_OnClosed (object sender, EventArgs e)
{
....
}Espero que tenha ficado claro desta vez. Caso contrário, poste de novo que a gente ajuda.
Breno Ferreira
Site: http://brsilverlight.com
Blog: http://brenocferreira.spaces.live.com
Twitter : http://twitter.com/breno_ferreiraSe a resposta foi útil, por favor, marque como resposta
- Marcado como Resposta Marcelos de Oliveiras sexta-feira, 19 de março de 2010 19:44
Todas as Respostas
-
Ola Marcelos
O que voce pode fazer é criar um evento no seu ChildWindow que será chamado toda vez que voce voce setar o valor do DialogResult do ChildWindow. Por exemplo:
public event EventHandler OnClosed;
private void OkButton_Click( object sender, RoutedEventArgs e )
{
this.DialogResult = true;
if(OnClosed != null)
OnClosed(this, new EventArgs());
}
Breno Ferreira
Site: http://brsilverlight.com
Blog: http://brenocferreira.spaces.live.com
Twitter : http://twitter.com/breno_ferreiraSe a resposta foi útil, por favor, marque como resposta
-
Breno,
Obrigado pela resposta e desculpe na demora em responder.
Como eu sou iniciante, eu peço desculpas mas eu não compreendi o que você explicou. Por favor veja se é isso:
- Primeira tela : Vamos chamá-la de ConsGrupo.cs. Eu tenho um grid exibindo todos os grupos cadastrados que faz isso através de uma chamada através do método "ExibirGruposCadastrados". Nela há um botão para incluir um novo grupo de produto, que irá chamar a tela chamada "CadGrupoProduto.cs";
- Segunda tela : Esta tela irá realizar o cadastro do grupo de produto;
Um forte abraço! - Primeira tela : Vamos chamá-la de ConsGrupo.cs. Eu tenho um grid exibindo todos os grupos cadastrados que faz isso através de uma chamada através do método "ExibirGruposCadastrados". Nela há um botão para incluir um novo grupo de produto, que irá chamar a tela chamada "CadGrupoProduto.cs";
-
Olá Marcelos
O evento será declarado (conforme explicado acima) na segunda tela, que, se eu entendi corretamente, é a ChildWindow de cadastro. Na primeira tela voce irá tratar este evento.
Por exemplo:
private void agMenuIncluir_Click(object sender, EventArgs e)
{
CadGrupoProduto cadGrupoProduto = new CadGrupoProduto();
cadGrupoProduto.OnClosed += new EventHandler (cadGrupoProduto_OnClosed);
cadGrupoProduto.Show();
}private void cadGrupoProduto_OnClosed (object sender, EventArgs e)
{
....
}Espero que tenha ficado claro desta vez. Caso contrário, poste de novo que a gente ajuda.
Breno Ferreira
Site: http://brsilverlight.com
Blog: http://brenocferreira.spaces.live.com
Twitter : http://twitter.com/breno_ferreiraSe a resposta foi útil, por favor, marque como resposta
- Marcado como Resposta Marcelos de Oliveiras sexta-feira, 19 de março de 2010 19:44
-
-
Grande Marcelos
Fico feliz em saber que pude ajudar!
Abraço
Breno Ferreira
Site: http://brsilverlight.com
Blog: http://brenocferreira.spaces.live.com
Twitter : http://twitter.com/breno_ferreiraSe a resposta foi útil, por favor, marque como resposta