locked
Texto em ItemsControl as vezes desaparece RRS feed

  • 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