Windows Dev Center

Melhorar o tempo de inicialização de aplicativos com os controles GridView e ListView (XAML)

Para criar cada item em um controle GridView ou ListView, o Tempo de Execução do Windows usa tempo de cálculo e memória. Cada item pode consistir em vários elementos para mostrar seu estado, incluindo elementos para tarefas como selecionar, focalizar o mouse e colocar o foco em um item. No Windows 8, todos esses elementos são criados com antecedência, mesmo se somente alguns deles forem usados. Isso resultado em tempo de inicialização mais longo. No Windows 8.1, o tempo de inicialização é melhorado com a introdução das classes GridViewItemPresenter e ListViewItemPresenter e o método GoToElementStateCore.

GridViewItemPresenter e ListViewItemPresenter

A classe GridViewItemPresenter (para o controle GridView) e a classe ListViewItemPresenter (para o controle ListView) criam objetos somente conforme necessário, e os objetos têm desempenho melhor no Windows 8.1 do que no Windows 8. Além disso, é muito mais fácil personalizar o comportamento de estado de item com essas classes no Windows 8.1, em vez do Windows 8.

Para demonstrar, a seguir está uma marcação XAML para o Windows 8.1 que remove a marca de verificação que aparece por padrão quando um item é escolhido e muda a cor de fundo do item escolhido para laranja.


<!-- ... -->
<GridView>
    <!-- ... -->
    <GridView.ItemContainerStyle>
        <Style TargetType="GridViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="GridViewItem">
                        <GridViewItemPresenter
                            SelectionCheckMarkVisualEnabled="False"
                            SelectedBackground="Orange"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </GridView.ItemContainerStyle>
</GridView>
<!-- ... -->


A localização das duas linhas corretas de marcação XAML que serão usadas, ou seja, SelectionCheckMarkVisualEnabled="False" e SelectedBackground="Orange", envolve a escolha em uma lista de cerca de 25 propriedades disponíveis com nomes de propriedades autodescritivos.

Em comparação, uma tarefa semelhante no Windows 8 envolve pesquisar em mais de 250 linhas de marcação XAML gerada que é menos descritiva, e modificar a marcação de destino no local ou copiar a marcação de destino para o seu próprio código de marcação XAML e modificá-lo ainda mais nesse local. Qualquer uma dessas abordagens é muito mais demorada e suscetível a erros.

GoToElementStateCore

Se você quiser criar um modelo de item personalizado—por exemplo, para mudar o comportamento visual padrão de um item em um controle GridView ou ListView, por exemplo mudar a marca de verificação de um item escolhido para uma forma diferente—você pode usar o método GoToElementStateCore. Esse método pode ser usado para adicionar itens a uma hierarquia de elementos visuais que descrevem o estado de um item para tarefas como comportamentos de seleção, focalização do mouse e foco. O método GoToElementStateCore permite a construção por estado desses tipos de elementos visuais, em vez de carregar o XAML para todos os estados em uma inicialização do controle. O uso desse método pode resultar em melhor inicialização de controle quando em comparação com a criação de uma implementação personalizada.

Para código que mostra como usar o método GoToElementStateCore, veja o XAML ListView e o GridView exemplo de aspectos essenciais.

Tópicos relacionados

Carregue, armazene e mostre grandes conjuntos de dados com eficiência
Atualize os itens de GridView e ListView de forma incremental
Minimize o tempo de inicialização

 

 

Mostrar:
© 2015 Microsoft