none
Performance carregando DataGrid com BD e ChildWIndow RRS feed

  • Pergunta

  • Olá a todos,

    Tenho uma aplicação silverlight (C#) onde eu tenho 50 ChildWindow e um DataGrid.

    Na minha ChildWindow eu tenho a possibilidade de incluir um dado novo ou alterar algum dado que eu selecionei no DataGrid.

    Vamos supor que eu tenho listado no meu DataGrid os meus 10mil funcionários, e após eu alterar eu queira atualizar o DataGrid, qual a melhor forma de faze isso ?!

    1º. Chamo o serviço para alterar o registro e no closing da ChildWindow eu chamo o serviço para atualizar meu DataGrid, buscando NOVAMENTE os meus 10mil funcionários para listar.

    2º. Chamo o serviço para alterar o registro e no mesmo momento (nao no closing) eu chamo um método que adiciona esse funcionário no fim do meu DataGrid (como uma nova linha), se for desta forma, alguém tem um exemplo ?!

    Aqui eu pensei muito em performance. Espero que vocês possam me ajudar....Caso eu nao tenha sido claro, por favor, perguntem aqui que eu respondo !

    Obrigado !!


    Atenciosamente, Guilherme. Caso esta resposta foi útil para seu problema, por favor, marque como mesma. Caso ela apenas responda sua pergunta corretamente, não esqueça de marca-lá.


    • Editado Seratti quarta-feira, 5 de setembro de 2012 19:32 erro port.
    quarta-feira, 5 de setembro de 2012 19:31

Respostas

  • Olá Seratti

    Um recurso interessante no Silverlight é a possibilidade de trabalhar com Binding.

    Um dos itens que acho mais interessante é a possibilidade de comunicação de uma alteração na propriedade, que automaticamente reflete no source que está utilizando.

    Vou dar um exemplo:

    Imagine que você tem um ListBox que consome dados de um List<T> dinâmico.

    Toda vez que você insere ou remove um item desta lista List<T>, esta alteração é refletida também no ListBox.

    Deste modo, no seu caso, você pode manter uma coleção que armazena a fonte de dados do seu grid, e caso seja feita uma inclusão na coleção, automaticamente ela é refletida no grid (sem precisar buscar novamente todos os seus registros), e aí você pode transacionar somente esta inclusão

    ou mandar a coleção de uma vez ao final do processamento.

    Aqui tem um exemplo disso:

    http://www.c-sharpcorner.com/uploadfile/mgold/how-to-using-the-silverlight-datagrid-with-the-observablecollection/

    Espero ter ajudado

    --------------------------------

    Tiago Saraiva Ferreira


    • Marcado como Resposta Seratti quarta-feira, 12 de setembro de 2012 11:56
    quarta-feira, 5 de setembro de 2012 20:15

Todas as Respostas

  • Olá Seratti

    Um recurso interessante no Silverlight é a possibilidade de trabalhar com Binding.

    Um dos itens que acho mais interessante é a possibilidade de comunicação de uma alteração na propriedade, que automaticamente reflete no source que está utilizando.

    Vou dar um exemplo:

    Imagine que você tem um ListBox que consome dados de um List<T> dinâmico.

    Toda vez que você insere ou remove um item desta lista List<T>, esta alteração é refletida também no ListBox.

    Deste modo, no seu caso, você pode manter uma coleção que armazena a fonte de dados do seu grid, e caso seja feita uma inclusão na coleção, automaticamente ela é refletida no grid (sem precisar buscar novamente todos os seus registros), e aí você pode transacionar somente esta inclusão

    ou mandar a coleção de uma vez ao final do processamento.

    Aqui tem um exemplo disso:

    http://www.c-sharpcorner.com/uploadfile/mgold/how-to-using-the-silverlight-datagrid-with-the-observablecollection/

    Espero ter ajudado

    --------------------------------

    Tiago Saraiva Ferreira


    • Marcado como Resposta Seratti quarta-feira, 12 de setembro de 2012 11:56
    quarta-feira, 5 de setembro de 2012 20:15
  • Concluído, obrigado !!


    Atenciosamente, Seratti. Se responder sua pergunta, marque, se apenas for util, marque.


    • Editado Seratti quarta-feira, 12 de setembro de 2012 11:56
    terça-feira, 11 de setembro de 2012 14:30