Visão geral da árvore Blazor
Ignite UI for Blazor Tree, também conhecido como componente TreeView, é um controle de alto desempenho que visualiza estruturas de dados expansíveis dentro de uma UI em forma de árvore, permitindo que você aplique carga sob demanda para itens filhos. O Ignite UI for Blazor Tree também fornece recursos como expandir e recolher nós, navegação de aplicativo aninhada, nós Ignite UI for Blazor Tree podem ser gerados manualmente ou de uma fonte de dados vinculada.
Para os usuários finais, isso significa que eles podem navegar facilmente por diferentes páginas do aplicativo, usar seleção, caixas de seleção, adicionar textos, ícones, imagens e muito mais.
O componente Ignite UI for Blazor Tree permite que os usuários representem dados hierárquicos em uma estrutura de visão em árvore, mantendo relações pai-filho, assim como definir uma estrutura estática de visão em árvore sem um modelo de dados correspondente. Seu principal objetivo é permitir que os usuários finais visualizem e naveguem dentro de estruturas de dados hierárquicas. OIgbTree componente também oferece recursos de carga sob demanda, ativação de itens, seleção múltipla e em cascata de itens por meio de caixas de seleção embutidas, navegação por teclado embutida e muito mais.
Blazor Tree Example
Neste exemplo básico Ignite UI for Blazor Tree, você pode ver como definir uma árvore e seus itens especificando a hierarquia de itens.
How to Use Ignite UI for Blazor Tree With Ignite UI
Você também precisará vincular um arquivo CSS adicional para aplicar o estilo aoIgbTree componente. O seguinte deve ser colocado no arquivo wwwroot/index.html em um projeto Blazor Web Assembly ou no arquivo Pages/_Host.cshtml em um projeto Blazor Server:
<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />
// in Program.cs file
builder.Services.AddIgniteUIBlazor(
typeof(IgbTreeModule),
typeof(IgbTreeItemModule)
);
A maneira mais simples de começar a usar oIgbTree é a seguinte:
Declaring a tree
IgbTreeItemé a representação de todo item que pertence a.IgbTree Os itens fornecemDisabled,ActiveSelected eExpanded propriedades, que dão a você a oportunidade de configurar os estados do item conforme sua necessidade. AValue propriedade pode ser usada para adicionar uma referência à entrada de dados que o item representa.
Os itens podem ser declarados usando uma das seguintes abordagens.
- Declarando a árvore e seus itens especificando a hierarquia de itens e iterando por meio de um conjunto de dados
<IgbTree>
@foreach (var student in this.Students)
{
<IgbTreeItem Value="@item.Id" Label="@item.Name">
</IgbTreeItem>
}
</IgbTree>
Os itens podem ser vinculados a um modelo de dados para que seus estados expandidos e selecionados também sejam refletidos nos dados subjacentes.
- Declarando uma árvore criando itens estáticos não vinculados
Para renderizar uma árvore, você não precisa necessariamente de um conjunto de dados – itens individuais podem ser criados sem um modelo de dados subjacente usando a propriedade expostaLabel ou fornecer um conteúdo de slot personalizado para oIgbTreeItem rótulo.
<IgbTree>
<IgbTreeItem Label="North America">
<IgbTreeItem Label="United States"></IgbTreeItem>
<IgbTreeItem Label="Canada"></IgbTreeItem>
<IgbTreeItem Label="Mexico"></IgbTreeItem>
</IgbTreeItem>
<IgbTreeItem Label="South America">
<IgbTreeItem Label="Brazil"></IgbTreeItem>
<IgbTreeItem Label="Uruguay"></IgbTreeItem>
</IgbTreeItem>
<IgbTreeItem Label="Europe">
<IgbTreeItem Label="United Kingdom"></IgbTreeItem>
<IgbTreeItem Label="Germany"></IgbTreeItem>
<IgbTreeItem Label="Bulgaria"></IgbTreeItem>
</IgbTreeItem>
</IgbTree>
[!Note] You can provide a custom slot content for each
IgbTreeItem's indentation, expansion and label area respectively using the providedindentation,indicatorandlabelslots.
Item Interactions
IgbTreeItempoderia ser expandido ou colapsado:
- Clicando no indicador de expansão do item (comportamento padrão).
- ao clicar no item se o
IgbTreeToggleNodeOnClickPropriedade é configurada paratrue.
Por padrão, vários itens poderiam ser expandidos ao mesmo tempo. Para mudar esse comportamento e permitir expandir apenas um único ramo por vez, aSingleBranchExpand propriedade poderia ser ativada. Assim, quando um item for expandido, todos os outros ramos já expandidos no mesmo nível serão colapsados.
Blazor Tree Selection
Para configurar a seleção de itens no componente Ignite UI for Blazor Árvore, basta definir a propriedade deleSelection. Essa propriedade aceita os seguintes três modos: Nenhum, Múltiplo e Cascata. Abaixo, vamos analisar cada um deles com mais detalhes.
None
Por padrão,IgbTree a seleção de itens está desativada. Os usuários não podem selecionar ou desmarcar um item por meio da interação da interface, mas essas ações ainda podem ser realizadas pelo método da API fornecido.
Multiple
Para permitir a seleção de múltiplos itens, bastaIgbTree definir aSelection propriedade para múltiplos. Isso gera uma caixa de seleção para cada item. Cada item tem dois estados - selecionados ou não. Este modo suporta múltiplas seleções.
<IgbTree Selection=TreeSelection.Multiple>
</IgbTree>
Cascade
Para habilitar a seleçãoIgbTree de itens em cascata, basta definir a propriedade de seleção em cascata. Isso gera uma caixa de seleção para cada item.
<IgbTree Selection=TreeSelection.Cascade>
</IgbTree>
Nesse modo, o estado de seleção de um pai depende inteiramente do estado de seleção de seus filhos. Quando um pai tem alguns filhos selecionados e alguns desmarcados, sua caixa de seleção está em um estado indeterminado.
Keyboard Navigation
A navegação por teclado ofereceIgbTree uma grande variedade de interações com o teclado para o usuário. Essa funcionalidade é ativada por padrão e permite que os usuários naveguem pelos itens.
AIgbTree navegação está em conformidade com os padrões de acessibilidade do W3C e é conveniente de usar.
Combinações de teclas
- ↓- navega para o próximo item visível. Marca o item como ativo. Não faz nada se estiver no ÚLTIMO item.
- CTRL + ↓- navega para o próximo item visível. Não faz nada se estiver no ÚLTIMO item.
- ↑- navega para o item visível anterior. Marca o item como ativo. Não faz nada se estiver no PRIMEIRO item.
- CTRL + ↑- navega para o item visível anterior. Não faz nada se estiver no PRIMEIRO item.
- ←- em um item pai expandido, o recolhe. Se o item estiver recolhido ou não tiver filhos, move para seu item pai. Não faz nada se não houver um item pai.
- →- em um item pai expandido, navega para o primeiro filho do item. Se em um item pai recolhido, expande-o. Não faz nada se o item não tiver filhos.
- HOME- navega para o PRIMEIRO item.
- END- navega até o ÚLTIMO item visível.
- TAB- navega para o próximo elemento focalizável na página, fora da árvore.
- SHIFT + TAB- navega até o elemento focalizável anterior na página, fora da árvore.
- SPACE- alterna a seleção do item atual. Marca o nó como ativo.
- SHIFT + SPACE- alterna a seleção de todos os itens entre o ativo e o pressionado Espaço enquanto mantém pressionado SHIFT se a seleção estiver ativada.
- ENTER- Ativa o item em destaque. Se o item tiver um link, abre o link.
- *- expande o item e todos os itens irmãos no mesmo nível.
Quando a seleção está habilitada, a seleção de itens pelo usuário final só é permitida por meio da caixa de seleção renderizada. Como ambos os tipos de seleção permitem seleção múltipla, as seguintes interações de mouse e teclado estão disponíveis:
- Clique- quando executado na caixa de seleção do item, alterna a seleção do item se a seleção estiver habilitada. Caso contrário, foca o item
- SHIFT + Click- quando executado na caixa de seleção do item, alterna a seleção de todos os itens entre o ativo e o clicado enquanto segura SHIFT se a seleção estiver ativada
Styling
Você pode mudar a aparênciaIgbTreeItem do usuário usando algumas das partes CSS expostas listadas abaixo:
| Nome da peça | Descrição |
|---|---|
wrapper |
O invólucro para o item da árvore. |
selected |
Indica o estado selecionado. Aplica-se awrapper. |
focused |
Indica estado focado. Aplica-se awrapper. |
active |
Indica um estado ativo. Aplica-se awrapper. |
indicator |
O indicador de expansão do item da árvore. |
label |
O conteúdo do item da árvore. |
text |
O item da árvore exibia texto. |
select |
A caixa de seleção do item da árvore quando a seleção está habilitada. |
Usando essas peças CSS, podemos personalizar a aparência doIgbTree componente assim:
igc-tree-item::part(active) {
background: var(--ig-secondary-500);
color: var(--ig-secondary-500-contrast);
}