バージョン

ノードでの検索

このトピックは、組織図で検索を実装する方法を示します。

トピックは以下のとおりです。

概要

基盤となるデータが特定の条件を満たす場合、xamOrgChart コントロールのノードは検索結果に含まれます。条件は、method delegate またはラムダ式を使用して指定されます。検索結果は、 OrgChartNode オブジェクトのコレクションとして表されます。

ノードに検索を実装するための方法は 2 通りあります。

  • method delegate の使用

  • ラムダ式の使用

後半はこれらを詳細に説明します。

ノードでの検索の実装

Method Delegate を使用してノードで検索を実装

method delegate を使用する時、最初にデリゲートを定義し、次にそれを使用して検索を実行します。

  1. ConditionMethod デリゲートに一致する検索条件を定義します。

C# の場合:

bool SearchEmployee(object data)
{
    if(data is Employee)
    {
        Employee employee = (Employee)data;
        if(employee.FirstName == "John")
        {
            return true;
        }
    }
    return false;
}

Visual Basic の場合:

Function SearchEmployee(data As Object) As Boolean
    If TypeOf data Is Employee Then
        Dim employee As Employee = DirectCast(data, Employee)
        If employee.FirstName = "John" Then
            Return True
        End If
    End If
    Return False
End Function
  1. 検索を実行します。

C# の場合:

IEnumerable<OrgChartNode> searchResults = orgChartInstance.Search(SearchEmployee);

Visual Basic の場合:

Dim searchResults As IEnumerable(Of OrgChartNode) = orgChartInstance.Search(AddressOf SearchEmployee)

ラムダ式を使用してノードで検索を実装

ラムダ式を使用する時、検索条件は Search メソッドで直接定義されます。

C# の場合:

IEnumerable<OrgChartNode> searchResults = orgChartInstance.Search(data =>
{
    if (data is Employee)
    {
        Employee employee = (Employee)data;
        if (employee.FirstName == "John")
        {
            return true;
        }
    }
    return false;
});

Visual Basic の場合:

Dim searchResults As IEnumerable(Of OrgChartNode) = orgChartInstance.Search(Function(data)
    If TypeOf data Is Employee Then
        Dim employee As Employee = DirectCast(data, Employee)
        If employee.FirstName = "John" Then
            Return True
        End If
    End If
    Return False
    End Function)

関連トピック