Usuário com melhor resposta
Texto em ItemsControl as vezes desaparece

Pergunta
-
Olá, estou desenvolvendo para WP, nesse programa preciso de um ItemsControl para listar textos, mas por algum motivo, as vezes esse texto desaparece do nada, cerca de 10% das vezes que entro na página que há o ItemsControl. Imagem que ilustra isso:
(Ainda não posso postar imagens, link para imagem: http://oi65.tinypic.com/wirib4.jpg)
Quando eu saio da página e entro de novo, normalmente o problema é resolvido, mas depois de um tempo ocorre de novo. O erro acontece mais frequentemente quando estou rodando no meu celular do que quando estou rodando no emulador.
As informações do ItemsControl são puxadas via JSON de um arquivo, segue o código comentado:
protected async override void OnNavigatedTo(NavigationEventArgs e) { num_lista = 0; lista.Items.Clear(); //Limpa o ItemsControl await readJsonAsync(); //Função que lê o Json do arquivo e armazena tudo na variável global tarefas if ((String)e.Parameter.ToString() != ""){ tarefas.Add(new Tarefa() { Nome = e.Parameter.ToString() }); //Caso esteha sendo adicionado uma tarefa, é adicionado normalmente } foreach (var tarefa in tarefas) { //para cada tarefa existente, é criado um item no ItemsControl num_lista++; if (lista != null) { lista.Items.Add(num_lista + ". " + tarefa.Nome); } } if ((String)e.Parameter.ToString() != "") { //Se foi adicionado algo, o arquivo JSON é atualizado com as novas informações await writeJsonAsync(tarefas); } }
Segue o XAML do ItemsControl:
<ItemsControl x:Name="lista" Margin="0,0,0,0" VerticalAlignment="Stretch" FontFamily="Arial" HorizontalAlignment="Stretch" Background="#C5E5F0" Padding="10, 10, 10, 10" Height="{Binding ElementName=MyGrid, Path=RowDefinitions[1].ActualHeight}" MaxHeight="{Binding ElementName=MyGrid, Path=RowDefinitions[1].ActualHeight.Value}"> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Background="#6091a3" Height="60" Margin="10, 10, 10, 0" HorizontalAlignment="Stretch"> <Border BorderBrush="{x:Null}" Height="60"> <TextBlock x:Name="blk" FontSize="30" Text="{Binding}" Margin="15,0,0,0" VerticalAlignment="Center" Width="{Binding ElementName=pai, Path=ActualWidth}" Foreground="White" TextWrapping="Wrap" /> </Border> </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> <ItemsControl.Template> <ControlTemplate> <ScrollViewer x:Name="ScrollViewer" > <ItemsPresenter /> </ScrollViewer> </ControlTemplate> </ItemsControl.Template> </ItemsControl>
Sei que está meio confuso, mas espero que alguém possa me ajudar, obrigado.
sexta-feira, 29 de janeiro de 2016 18:39
Respostas
-
Não, nenhuma mensagem, depois de um tempo consegui contornar o erro usando um Sleep() de um milisegundo, mas ainda acho que é uma gambiarra e deve existir uma forma melhor.
- Marcado como Resposta Marcos SJ sexta-feira, 11 de março de 2016 20:33
sexta-feira, 26 de fevereiro de 2016 20:28
Todas as Respostas
-
Olá Renato MK,
Tudo bem?
Além do que você explicou, tem alguma mensagem de erro sendo apresentada?
Atenciosamente
Marcos SJ Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
sexta-feira, 26 de fevereiro de 2016 20:11 -
Não, nenhuma mensagem, depois de um tempo consegui contornar o erro usando um Sleep() de um milisegundo, mas ainda acho que é uma gambiarra e deve existir uma forma melhor.
- Marcado como Resposta Marcos SJ sexta-feira, 11 de março de 2016 20:33
sexta-feira, 26 de fevereiro de 2016 20:28