Partilhar via


Diagnóstico de vinculação de dados XAML

Os desenvolvedores que trabalham em projetos XAML geralmente precisam detetar e resolver falhas de vinculação de dados XAML em seus aplicativos. Agora há ferramentas no Visual Studio 2019 versão 16.8 ou posterior e no Visual Studio 2022 para ajudar a encontrar essas falhas irritantes de vinculação de dados enquanto você depura seu aplicativo. Exemplos de falhas comuns de vinculação são os seguintes:

  • Vinculação a um nome de propriedade que não existe: {Binding Wrong.Name}
  • Vinculação a um valor do tipo errado, como ligação a um booleano quando uma enumeração é necessária: Visibility="{Binding IsVisible}"

Como essas associações são calculadas em tempo de execução usando reflexão, o editor XAML nem sempre é capaz de capturá-las, e sua compilação ainda terá êxito. A falha acontece apenas em tempo de execução.

A associação de dados XAML é explicada nestes artigos:

Falhas de vinculação sempre foram gravadas na janela de saída de depuração no Visual Studio. Mas é fácil não perceber as falhas de vinculação na saída de depuração, pois ela contém outras informações que fazem com que as falhas de vinculação desapareçam da exibição. Aqui está um exemplo de uma falha de ligação do WPF na janela de resultados de depuração:

Captura de ecrã da janela de saída que contém uma falha de ligação.

A falha de vinculação pode estar a centenas de linhas na parte superior da janela, e o texto não informa exatamente qual vinculação teve a falha, então você precisa pensar sobre isso e pesquisar.

Agora, com a janela da ferramenta Falhas de Vinculação XAML, você pode ver claramente quais associações falharam, juntamente com dados relevantes para cada falha, como o local do arquivo em XAML. Além disso, existem muitos recursos úteis para investigar as falhas, pesquisando, ordenando e até mesmo abrindo o editor XAML com o foco definido no vínculo com falha.

Captura de tela da janela da ferramenta Falhas de Vinculação XAML.

Clicar duas vezes nessas linhas abre o XAML de origem para a associação, conforme mostrado na imagem a seguir:

Captura de tela de associações de exemplo no editor XAML.

Janela da ferramenta Falhas de Vinculação XAML

A janela da ferramenta Falhas de Vinculação XAML está disponível durante a depuração. Para abri-lo, vá para Debug>Windows>XAML Binding Failures.

Captura de ecrã da opção Falhas de vinculação XAML no menu de Depuração.

Ou selecione o botão Falhas de vinculação na barra de ferramentas do aplicativo. O número ao lado do ícone mostra quantas falhas de vinculação são mostradas na janela da ferramenta.

Captura de tela da barra de ferramentas no aplicativo mostrando o botão de falhas de vinculação.

Quando não há falhas de vinculação na janela da ferramenta, o ícone aparece como cinza sem um número ao lado. Isso é útil ao executar seu aplicativo. Se você vir o ícone ficar vermelho com um número, clique nele para ir rapidamente para a janela da ferramenta para ver quais falhas de vinculação ocorreram. Não há necessidade de ficar de olho nas janelas de ferramentas do Visual Studio. Quando uma ligação falha, o estado do ícone mostra-te o estado imediato.

Captura de ecrã da barra de ferramentas dentro da aplicação mostrando o botão de erros de vinculação sem nenhuma falha.

Um ícone semelhante também aparece na janela da ferramenta Live Visual Tree.

Captura de tela do botão de falhas de vinculação na janela da ferramenta Live Visual Tree.

A seguir está uma descrição de todos os componentes da janela da ferramenta Falhas de Vinculação XAML.

Captura de tela da janela da ferramenta Falhas de Vinculação XAML.

  • A barra de ferramentas na parte superior contém botões da seguinte maneira:
    • Limpar a lista de falhas: Isso é útil se você estiver prestes a mostrar uma nova página em seu aplicativo e quiser ver se alguma falha de vinculação aparece. Quando você inicia uma nova sessão de depuração, a lista é automaticamente limpa.
    • Excluir linhas selecionadas: Se uma falha tiver sido corrigida ou não for relevante, você poderá excluí-la da lista. As linhas eliminadas aparecem novamente se a ligação falhar novamente.
    • Limpar todos os filtros: Se houver filtros na lista, como a procura de texto, este botão limpa-os e mostra a lista completa.
    • Combinar Duplicados: Muitas vezes, a mesma ligação falha várias vezes seguidas quando está dentro de um modelo de item. Quando o botão Combinar Duplicatas é selecionado (com um contorno ao redor), os casos de falhas duplicadas são mostrados numa única linha. A coluna Contagem mostra quantas vezes ocorreu a falha.
  • A caixa Falhas de Vinculação de Pesquisa no canto superior permite filtrar as falhas somente àquelas que contêm texto específico.
  • As colunas da tabela, em ordem, mostram:
    • Um ícone que indica se a linha se refere a um erro ou a um aviso.
    • Um ícone que mostra colchetes angulares <> se a navegação para o {Binding} com falha em XAML for suportada. Consulte a seção Plataformas Suportadas.
    • Data Context: Este é o nome do tipo para o objeto de origem da ligação
    • Caminho de vinculação: Este é o caminho da propriedade para a vinculação
    • Alvo: Esta opção refere-se ao tipo e ao nome da propriedade onde o valor da associação é definido.
    • Tipo de destino: Este é o tipo esperado da propriedade de destino da ligação.
    • Descrição: Esta coluna contém mais informações sobre o que exatamente falhou na ligação.
    • Ficheiro, Linha, e Projeto: Se conhecido, este é o local em XAML onde a associação é definida.
  • Clicar com o botão direito numa linha ou várias linhas selecionadas mostra um menu contextual, com opções padrão para mostrar/esconder colunas ou agrupá-las. Outras opções são as seguintes:
    • Copie todo o texto de uma linha ou apenas de uma única coluna para a área de transferência.
    • Copiar Erro Original copia o texto que apareceu na janela de saída de depuração.
    • "View Source navega para a origem de ligação em XAML para uma linha selecionada."
    • Reiniciar Colunas anula todas as alterações à visibilidade e ordenação das colunas, devolvendo-te rapidamente ao que foi originalmente mostrado.

Para classificar a lista, clique em qualquer cabeçalho de coluna. Para classificar novamente por uma coluna extra, mantenha pressionada a tecla Shift e clique em outro cabeçalho de coluna. Para selecionar quais colunas são exibidas e quais estão ocultas, escolha Mostrar Colunas no menu de atalho. Para alterar a ordem em que as colunas são exibidas, arraste qualquer cabeçalho de coluna para a esquerda ou direita.

Depois de clicar duas vezes numa linha ou pressionar Enter para navegar para a fonte, pode pressionar F8 ou Shift+F8 para mover para baixo ou para cima na lista de falhas de associação. Isso é como outros painéis no Visual Studio que mostram uma lista.

Plataformas suportadas

A maioria das plataformas XAML é suportada se as falhas de vinculação forem gravadas na saída de depuração. Algumas plataformas fornecem informações de origem extra para o depurador que permite navegar até a fonte.

Plataforma suportados Navegue até a fonte suportada
WPF .NET Framework Sim Não
WPF .NET 5.0 RC2+ Sim Sim
UWP Sim Não
de área de trabalho WinUI3 Sim Não
MAUI (Interface de Utilizador de Aplicação Multiplataforma) Sim Não
Xamarin 4.5.0.266-pre3+ Sim Sim
Xamarin antes de 4.5.0.266-pre3 Não Não

Para suportar a navegação até à fonte, a funcionalidade XAML Hot Reload deve estar ativada no Visual Studio. No painel Ferramentas>Opções, expanda a secção Todas as Definições>Depuração>Recarregamento Quente XAML e selecione a caixa de seleção Ativar Recarregamento Quente XAML.

Captura de ecrã das opções de recarregamento a quente do XAML no painel de Opções de Ferramentas.

Para suportar a navegação até à fonte, a funcionalidade XAML Hot Reload deve estar ativada no Visual Studio. No diálogo Ferramentas>Opções, expanda a secção Depuração>XAML Hot Reload, selecione a caixa de seleção Ativar XAML Hot Reload e depois selecione OK.

Captura de ecrã das opções de Hot Reload do XAML na caixa de diálogo Opções de Ferramentas.

Navegar para o código-fonte só funciona para associações definidas em arquivos de origem XAML, não se elas forem criadas por meio de código. Você pode ver claramente quais linhas suportam a navegação até a fonte. Se não houver nenhum ícone de colchete angular na segunda coluna, não há suporte para navegar até a origem, como com a linha realçada na captura de tela a seguir:

Captura de tela mostrando uma falha de associação XAML sem um local de origem.

Para WPF no .NET Framework, as falhas de vinculação de dados devem ser mostradas na saída de depuração do painel Falhas de Vinculação XAML para detetá-las e mostrá-las. Configura a definição de Ligação de Dados no painel Ferramentas>Opções, na secção Todas as Definições>Depuração>Janela de Saída>Definições de Traço WPF.

Captura de ecrã que mostra como definir a opção de Ligação de Dados.

Para WPF no .NET Framework, as falhas de vinculação de dados devem ser mostradas na saída de depuração do painel Falhas de Vinculação XAML para detetá-las e mostrá-las. Configure a definição de Ligação de Dados no diálogo Opções de Ferramentas>, na secçãoda Janela de Saída de Depuração>, grupo de Definições de Traço WPF.

Captura de ecrã da opção Data Binding no grupo de Definições de Rastreio WPF.

Se o valor de definição for Desligado ou Crítico, erros de encadeamento de dados não são registados na saída de depuração e não podem ser detetados. Com o WPF no .NET 5, .NET 6 e posterior, a configuração de saída de vinculação de dados não afeta a lista de falhas.