bool SearchEmployee(object data) { if(data is Employee) { Employee employee = (Employee)data; if(employee.FirstName == "John") { return true; } } return false; }
このトピックは、組織図で検索を実装する方法を示します。
トピックは以下のとおりです。
基盤となるデータが特定の条件を満たす場合、xamOrgChart コントロールのノードは検索結果に含まれます。条件は、method delegate またはラムダ式を使用して指定されます。検索結果は、 OrgChartNode オブジェクトのコレクションとして表されます。
ノードに検索を実装するための方法は 2 通りあります。
method delegate の使用
ラムダ式の使用
後半はこれらを詳細に説明します。
method delegate を使用する時、最初にデリゲートを定義し、次にそれを使用して検索を実行します。
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
検索を実行します。
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)