IHierarchicalEnumerable.GetHierarchyData メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > IHierarchicalEnumerable.GetHierarchyData メソッドの意味・解説 

IHierarchicalEnumerable.GetHierarchyData メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

列挙され特定項目に対して階層構造データ項目を返します

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文構文

Function GetHierarchyData ( _
    enumeratedItem As Object _
) As IHierarchyData
Dim instance As IHierarchicalEnumerable
Dim enumeratedItem As Object
Dim returnValue As IHierarchyData

returnValue = instance.GetHierarchyData(enumeratedItem)
IHierarchyData GetHierarchyData (
    Object enumeratedItem
)
IHierarchyData^ GetHierarchyData (
    Object^ enumeratedItem
)
IHierarchyData GetHierarchyData (
    Object enumeratedItem
)
function GetHierarchyData (
    enumeratedItem : Object
) : IHierarchyData

パラメータ

enumeratedItem

IHierarchyData を返す対象Object

戻り値
GetHierarchyData メソッド渡される Object を表す IHierarchyData インスタンス

解説解説
使用例使用例

次のコード例では、階層構造ASP.NET データ バインド コントロールが、再帰的データ バインディング メソッドIHierarchyData オブジェクト使用する方法示しますIHierarchicalEnumerable オブジェクト内の項目が列挙されそれぞれの項目に対してGetHierarchyData メソッド使用して IHierarchyData オブジェクト取得されます。最後に HasChildren プロパティチェックされ再帰が必要かどうか決定されます。このコード例は、HierarchicalDataBoundControl クラストピック取り上げているコード例一部分です。

Private Sub RecurseDataBindInternal(ByVal
 node As TreeNode, _
    ByVal enumerable As IHierarchicalEnumerable,
 _
    ByVal depth As Integer)

    Dim item As Object
    For Each item In enumerable

        Dim data As IHierarchyData = enumerable.GetHierarchyData(item)

        If Not data Is Nothing
 Then

            ' Create an object that represents the bound data
            ' to the control.
            Dim newNode As New
 TreeNode()
            Dim rvnode As New
 RootViewNode()

            rvnode.Node = newNode
            rvnode.Depth = depth

            ' The dataItem is not just a string, but potentially
            ' an XML node or some other container. 
            ' If DataTextField is set, use it to determine which 
            ' field to render. Otherwise, use the first field.     
               
            If DataTextField.Length > 0 Then
                newNode.Text = DataBinder.GetPropertyValue _
                (data, DataTextField, Nothing)
            Else
                Dim props As PropertyDescriptorCollection
 = _
                TypeDescriptor.GetProperties(data)

                ' Set the "default" value of the node.
                newNode.Text = String.Empty

                ' Set the true data-bound value of the TextBox,
                ' if possible.
                If props.Count >= 1 Then
                    If Not props(0).GetValue(data)
 Is Nothing Then
                        newNode.Text = props(0).GetValue(data).ToString()
                    End If
                End If
            End If

            Nodes.Add(rvnode)

            If data.HasChildren Then
                Dim newEnumerable As IHierarchicalEnumerable
 = _
                    data.GetChildren()
                If Not (newEnumerable Is
 Nothing) Then
                    RecurseDataBindInternal(newNode, _
                    newEnumerable, depth + 1)
                End If
            End If

            If MaxDepth < depth Then
                MaxDepth = depth
            End If
        End If
    Next item

End Sub 'RecurseDataBindInternal

private void RecurseDataBindInternal(TreeNode
 node, 
    IHierarchicalEnumerable enumerable, int depth) {         
                           
                
    foreach(object item in enumerable) {
        IHierarchyData data = enumerable.GetHierarchyData(item);

        if (null != data) {
            // Create an object that represents the bound data
            // to the control.
            TreeNode newNode = new TreeNode();
            RootViewNode rvnode = new RootViewNode();
            
            rvnode.Node = newNode;
            rvnode.Depth = depth;

            // The dataItem is not just a string, but potentially
            // an XML node or some other container. 
            // If DataTextField is set, use it to determine which 
            // field to render. Otherwise, use the first field.    
                
            if (DataTextField.Length > 0) {
                newNode.Text = DataBinder.GetPropertyValue
                    (data, DataTextField, null);
            }
            else {
                PropertyDescriptorCollection props = 
                    TypeDescriptor.GetProperties(data);

                // Set the "default" value of the node.
                newNode.Text = String.Empty;                        

                // Set the true data-bound value of the TextBox,
                // if possible.
                if (props.Count >= 1) {                   
     
                    if (null != props[0].GetValue(data))
 {
                        newNode.Text = 
                            props[0].GetValue(data).ToString();
                    } 
                }
            }

            Nodes.Add(rvnode);                    
            
            if (data.HasChildren) {
                IHierarchicalEnumerable newEnumerable = 
                    data.GetChildren();
                if (newEnumerable != null)
 {                            
                    RecurseDataBindInternal(newNode, 
                        newEnumerable, depth+1 );
                }
            }
            
            if ( _maxDepth < depth) _maxDepth = depth;
            
        }
    }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
IHierarchicalEnumerable インターフェイス
IHierarchicalEnumerable メンバ
System.Web.UI 名前空間
IHierarchyData



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「IHierarchicalEnumerable.GetHierarchyData メソッド」の関連用語

IHierarchicalEnumerable.GetHierarchyData メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



IHierarchicalEnumerable.GetHierarchyData メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS