Blazor 트리 개요
TreeView 구성 요소라고도 하는 Ignite UI for Blazor 트리와 같은 UI 내에서 확장 가능한 데이터 구조를 시각화하여 요청 시 하위 항목에 로드를 적용할 수 있게 해주는 고성능 컨트롤입니다. Ignite UI for Blazor 노드 확장 및 축소, 중첩된 앱 탐색, 수동으로 또는 바인딩된 데이터 소스에서 생성할 수 있는 Ignite UI for Blazor와 같은 기능도 제공합니다.
최종 사용자의 경우 이는 다양한 앱 페이지를 쉽게 탐색하고, 선택 항목, 확인란을 사용하고, 텍스트, 아이콘, 이미지 등을 추가할 수 있음을 의미합니다.
Ignite UI for Blazor 구성 요소를 사용하면 사용자는 트리 뷰 구조에서 계층적 데이터를 표현하고 부모-자식 관계를 유지할 수 있을 뿐만 아니라 해당 데이터 모델 없이 정적 트리 뷰 구조를 정의할 수 있습니다. 주요 목적은 최종 사용자가 계층적 데이터 구조 내에서 시각화하고 탐색할 수 있도록 하는 것입니다. IgbTree
구성요소는 또한 내장된 체크박스, 내장된 키보드 탐색 등을 통해 요청 시 로드 기능, 항목 활성화, 다중 및 계단식 항목 선택을 제공합니다.
Blazor Tree Example
Ignite UI for Blazor 예제에서는 항목 계층 구조를 지정하여 트리와 해당 항목을 정의하는 방법을 확인할 수 있습니다.
How to Use Ignite UI for Blazor Tree With Ignite UI
또한 IgbTree
구성 요소에 스타일을 적용하려면 추가 CSS 파일을 연결해야 합니다. 다음은 Blazor 웹 어셈블리 프로젝트의 wwwroot/index.html 파일 또는 Blazor Server 프로젝트의 Pages/_Host.cshtml 파일에 배치되어야 합니다.
<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />
// in Program.cs file
builder.Services.AddIgniteUIBlazor(
typeof(IgbTreeModule),
typeof(IgbTreeItemModule)
);
IgbTree
사용을 시작하는 가장 간단한 방법은 다음과 같습니다.
Declaring a tree
IgbTreeItem
에 속한 IgbTree
모든 항목의 표현입니다. 항목은 요구 사항에 따라 항목의 상태를 구성할 수 있는 기회를 제공하는 속성을 제공합니다 Disabled
Selected
Active
Expanded
. 이 Value
속성은 항목이 나타내는 데이터 항목에 대한 참조를 추가하는 데 사용할 수 있습니다.
항목은 다음 방법 중 하나를 사용하여 선언할 수 있습니다.
- 항목 계층 구조를 지정하고 데이터 세트를 반복하여 트리와 해당 항목 선언
<IgbTree>
@foreach (var student in this.Students)
{
<IgbTreeItem Value="@item.Id" Label="@item.Name">
</IgbTreeItem>
}
</IgbTree>
항목의 확장 및 선택 상태가 기본 데이터에도 반영되도록 항목을 데이터 모델에 바인딩할 수 있습니다.
- 바인딩되지 않은 정적 항목을 생성하여 트리 선언
트리를 렌더링하기 위해 반드시 데이터 세트가 필요한 것은 아닙니다 - 노출 Label
된 속성을 사용하여 기본 데이터 모델 없이 개별 항목을 만들거나 레이블에 대한 사용자 지정 슬롯 콘텐츠를 제공할 수 있습니다 IgbTreeItem
.
<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
,indicator
andlabel
slots.
Item Interactions
IgbTreeItem
확장되거나 축소될 수 있습니다.
- 항목을 클릭하여 확장 표시기 (기본 동작).
- 항목을 클릭하면
IgbTree
ToggleNodeOnClick
속성이 로 설정되어 있는지 확인합니다true
.
기본적으로 여러 항목을 동시에 확장할 수 있습니다. 이 동작을 변경하고 한 번에 SingleBranchExpand
하나의 분기만 확장할 수 있도록 하려면 속성을 사용하도록 설정할 수 있습니다. 이렇게 하면 항목이 확장될 때 동일한 수준에서 이미 확장된 다른 모든 분기가 축소됩니다.
Blazor Tree Selection
Ignite UI for Blazor 트리 구성 요소에서 항목 선택을 설정하려면 해당 속성을 설정하기만 하면 됩니다 Selection
. 이 속성은 None, Multiple 및 Cascade의 세 가지 모드를 허용합니다. 아래에서 각각에 대해 자세히 살펴보겠습니다.
None
IgbTree
에서는 기본적으로 항목 선택이 비활성화되어 있습니다. 사용자는 UI 상호 작용을 통해 항목을 선택하거나 선택 취소할 수 없지만 제공된 API 메서드를 통해 이러한 작업을 완료할 수 있습니다.
Multiple
에서 여러 항목을 선택할 수 있도록 하려면 IgbTree
그냥 설정하기만 하면 됩니다. Selection
property 를 배수. 이렇게 하면 모든 항목에 대한 확인란이 렌더링됩니다. 각 항목에는 선택되거나 선택되지 않은 두 가지 상태가 있습니다. 이 모드는 다중 선택을 지원합니다.
<IgbTree Selection=TreeSelection.Multiple>
</IgbTree>
Cascade
IgbTree
에서 계단식 항목 선택을 활성화하려면 선택 속성을 cascade로 설정하면 됩니다. 그러면 모든 항목에 대한 확인란이 렌더링됩니다.
<IgbTree Selection=TreeSelection.Cascade>
</IgbTree>
이 모드에서 부모의 선택 상태는 전적으로 자식의 선택 상태에 따라 달라집니다. 부모에 선택된 자식과 선택 취소된 자식이 있는 경우 해당 확인란은 확정되지 않은 상태입니다.
Keyboard Navigation
IgbTree
의 키보드 탐색은 사용자에게 다양한 키보드 상호 작용을 제공합니다. 이 기능은 기본적으로 활성화되어 있으며 사용자가 항목을 탐색할 수 있도록 합니다.
IgbTree
탐색은 W3C 접근성 표준을 준수하며 사용이 편리합니다.
주요 조합
- ↓- 표시되는 다음 항목으로 이동합니다. 항목을 활성으로 표시합니다. 마지막 항목인 경우 아무 작업도 수행하지 않습니다.
- Ctrl + ↓- 표시되는 다음 항목으로 이동합니다. 마지막 항목인 경우 아무 작업도 수행하지 않습니다.
- ↑- 이전에 표시된 항목으로 이동합니다. 항목을 활성으로 표시합니다. 첫 번째 항목인 경우 아무 작업도 수행하지 않습니다.
- Ctrl + ↑- 표시된 이전 항목으로 이동합니다. 첫 번째 항목인 경우 아무 작업도 수행하지 않습니다.
- ←- 확장된 상위 항목에서는 해당 항목을 축소합니다. 항목이 축소되었거나 하위 항목이 없으면 상위 항목으로 이동합니다. 상위 항목이 없으면 아무 작업도 수행하지 않습니다.
- →- 확장된 상위 항목에서 항목의 첫 번째 하위 항목으로 이동합니다. 접힌 상위 항목에 있는 경우 확장합니다. 항목에 하위 항목이 없으면 아무 작업도 수행하지 않습니다.
- 홈- 첫 번째 항목으로 이동합니다.
- 끝- 마지막으로 표시된 항목으로 이동합니다.
- 탭- 트리 외부의 페이지에서 포커스를 받을 수 있는 다음 요소로 이동합니다.
- Shift + Tab- 트리 외부의 페이지에서 초점을 맞출 수 있는 이전 요소로 이동합니다.
- 스페이스- 현재 항목 선택을 전환합니다. 노드를 활성으로 표시합니다.
- Shift + Space- 선택이 활성화된 경우 Shift를 누른 상태에서 활성 항목과 Space를 누른 항목 사이의 모든 항목 선택을 전환합니다.
- Enter- 초점이 맞춰진 항목을 활성화합니다. 항목에 링크가 있으면 링크를 엽니다.
- *- 항목과 같은 수준의 모든 형제 항목을 확장합니다.
선택이 활성화되면 최종 사용자의 항목 선택은 렌더링된 확인란을 통해서만 허용됩니다. 두 선택 유형 모두 다중 선택을 허용하므로 다음과 같은 마우스 및 키보드 상호 작용을 사용할 수 있습니다.
- 클릭- 항목 확인란을 수행할 때 선택이 활성화된 경우 항목 선택을 전환합니다. 그렇지 않으면 항목에 초점을 맞춥니다.
- Shift + 클릭- 항목 확인란을 수행할 때 활성 항목과 선택이 활성화된 경우 Shift를 누른 상태에서 클릭한 항목 사이의 모든 항목 선택을 전환합니다.
Styling
아래 나열된 노출된 CSS 부분 중 일부를 사용하여 IgbTreeItem
의 모양을 변경할 수 있습니다.
부품명 | 설명 |
---|---|
wrapper |
나무 항목의 래퍼입니다. |
selected |
선택된 상태를 나타냅니다. 적용대상wrapper . |
focused |
집중된 상태를 나타냅니다. 적용대상wrapper . |
active |
활성 상태를 나타냅니다. 적용대상wrapper . |
indicator |
트리 항목의 확장 표시기입니다. |
label |
트리 항목 콘텐츠입니다. |
text |
트리 항목에 텍스트가 표시되었습니다. |
select |
선택이 활성화된 경우 트리 항목의 확인란입니다. |
이러한 CSS 부분을 사용하여 다음과 같이 IgbTree
구성 요소의 모양을 사용자 정의할 수 있습니다.
igc-tree-item::part(active) {
background: #ecaa53;
}
igc-tree-item::part(selected) {
background: #ffe6cc;
}
igc-tree-item::part(active selected) {
background: #ff8c1a;
color: white;
}