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
|
|