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 provided indentation, indicator and label slots.

    Item Interactions

    IgbTreeItem 확장되거나 축소될 수 있습니다.

    • 항목을 클릭하여 확장 표시기 (기본 동작).
    • 항목을 클릭하면 IgbTree ToggleNodeOnClick 속성이 로 설정되어 있는지 확인합니다 true.

    기본적으로 여러 항목을 동시에 확장할 수 있습니다. 이 동작을 변경하고 한 번에 SingleBranchExpand 하나의 분기만 확장할 수 있도록 하려면 속성을 사용하도록 설정할 수 있습니다. 이렇게 하면 항목이 확장될 때 동일한 수준에서 이미 확장된 다른 모든 분기가 축소됩니다.

    Blazor Tree Selection

    Ignite UI for Blazor 트리 구성 요소에서 항목 선택을 설정하려면 해당 속성을 설정하기만 하면 됩니다 Selection. 이 속성은 None, MultipleCascade의 세 가지 모드를 허용합니다. 아래에서 각각에 대해 자세히 살펴보겠습니다.

    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;
    }
    

    API References

    Additional Resources