StrataFrame Forum

StrataListView - Do not clean the items

http://forum.strataframe.net/Topic32588.aspx

By Rogerio Mauri - 5/19/2014

Ivan... Boa Tarde... Poderia traduzir? Grato...

Um cliente havia relatado o problema, mas só agora me deparei com ele.

Utilizando o StrataListView para exibir os registros relacionados. Quando o BO principal é movimentado rapidamente o StrataListView não limpa os itens do relacionamento anterior, duplicando as linhas.

Código envolvido:

private void tbBO1_Navigated(MicroFour.StrataFrame.Business.NavigatedEventArgs e)
{
     ReadBOFilho();
}

private void ReadBOFilho()
{

     LimpaGrade();
     tbFilhoBO1.FillByParentPrimaryKey(tbBO1.id);
     if (tbFilhoBO1.Count > 0) CarregaGrade();

}

private void LimpaGrade()
{
    Cursor.Current = Cursors.WaitCursor;
    strataListView1.BeginUpdate();
    strataListView1.Items.Clear();
    strataListView1.Groups.Clear();
    strataListView1.EndUpdate();
    Application.DoEvents();

}

private void CarregaGrade()
{
    Cursor.Current = Cursors.WaitCursor;
    strataListview1.BeginUpdate();
    StrataListViewItem item;
    StrataListViewSubItem subitem;
    if (tbFilhoBO1.Count > 0)
    {
          tbFilhoBO1.MoveFirst();
          do
          {
             item = new StrataListViewItem(string.Empty, "folder26.png");
             item.SubItems.Add(tbFilhoBO1.NomeCadastro);
             ...
             ...
             strataListView1.Items.Add(item);

          } while (tbFilhoBO1.MoveNext());
    }
    strataListView1.Sort(1, MicroFour.StrataFrame.UI.Rendering.Enums.StrataSortDirection.Ascending);
    strataListView1.EndUpdate();
    item = null;
    subitem = null;
    Application.DoEvents();


}
By Ivan George Borges - 5/19/2014

Olá Rogério.

Eu acho que os seus "DoEvents" são os grandes responsáveis pelo que está acontecendo.

Abraços.

Ivan