IHierarchyData.Item プロパティ
アセンブリ: System.Web (system.web.dll 内)


SiteMapNode クラスなど、階層データ ノードを表す多くのクラスは、IHierarchyData インターフェイスを直接実装しますが、このインターフェイスを実装しないクラスのラッパーとしてのみ機能するクラスもあります。Item プロパティは、ビジネス オブジェクトが機能的には IHierarchyData オブジェクトと同じでありながら、再デザインが容易でない場合など、このようなデザイン時用に提供されているプロパティです。

IHierarchyData プロパティにアクセスし、Type プロパティを使用して IHierarchyData オブジェクトの型をチェックし、そのオブジェクトをキャストして、より厳密に型指定される操作を実行する方法を次のコード例に示します。このコード例は IHierarchyData インターフェイスのトピックで取り上げているコード例の一部分です。
' Print out the the current data node, then iterate through its ' children and do the same. Private Sub PrintFullChildNodeInfo(ByVal node As IHierarchyData) Dim whitespace As String = " " Dim br As String = "<BR>" Response.Write(Convert.ToString(node) & br) Response.Write(whitespace & node.Path & br) ' Check for specific types and perform extended functions. If node.Type = "SiteMapNode" Then ' Because SiteMapNode implements the IHierarchyData interface , ' the IHierarchyData object can be cast directly as a SiteMapNode , ' rather than accessing the Item property for the object that ' the Type property identifies. Dim siteNode As SiteMapNode = CType(node.Item, SiteMapNode) Response.Write(whitespace & siteNode.Url & br) Response.Write(whitespace & siteNode.Description & br) ElseIf node.Type = "SomeBusinessObject Then" Then ' If the IHierarchyData instance is a wrapper class on a business ' object of some kind, you can retrieve the business object by using ' the IHierarchyData.Item property. ' SomeBusinessObject busObj = node.Item as SomeBusinessObject; End If If node.HasChildren Then Dim children As IEnumerator = CType(node.GetChildren().GetEnumerator(), IHierarchicalEnumerable) While children.MoveNext() ' Print out SiteMapNode Titles recursively. Dim hierarchicalNode As IHierarchyData = node.GetChildren().GetHierarchyData(children.Current) PrintFullChildNodeInfo(hierarchicalNode) End While End If End Sub
// Print out the the current data node, then iterate through its // children and do the same. private void PrintFullChildNodeInfo(IHierarchyData node) { string whitespace = " "; string br = "<BR>"; Response.Write(node.ToString() + br); Response.Write(whitespace + node.Path + br); // Check for specific types and perform extended functions. if (node.Type == "SiteMapNode") { // Because SiteMapNode implements the IHierarchyData interface , // the IHierarchyData object can be cast directly as a SiteMapNode , // rather than accessing the Item property for the object that // the Type property identifies. SiteMapNode siteNode = node.Item as SiteMapNode; Response.Write(whitespace + siteNode.Url + br); Response.Write(whitespace + siteNode.Description + br); } else if (node.Type == "SomeBusinessObject") { // If the IHierarchyData instance is a wrapper class on a business // object of some kind, you can retrieve the business object by using // the IHierarchyData.Item property. // SomeBusinessObject busObj = node.Item as SomeBusinessObject; } if (node.HasChildren) { IEnumerator children = ((IHierarchicalEnumerable)node.GetChildren()).GetEnumerator(); while (children.MoveNext()) { // Print out SiteMapNode Titles recursively. IHierarchyData hierarchicalNode = node.GetChildren().GetHierarchyData(children.Current); PrintFullChildNodeInfo(hierarchicalNode); } } }
// Print out the the current data node, then iterate through its // children and do the same. private void PrintFullChildNodeInfo(IHierarchyData node) { String whitespace = " "; String br = "<BR>"; get_Response().Write(node.toString() + br); get_Response().Write(whitespace + node.get_Path() + br); // Check for specific types and perform extended functions. if (node.get_Type().Equals("SiteMapNode")) { // Because SiteMapNode implements the IHierarchyData interface , // the IHierarchyData object can be cast directly as a SiteMapNode , // rather than accessing the Item property for the object that // the Type property identifies. SiteMapNode siteNode = null; siteNode = (SiteMapNode)node.get_Item(); get_Response().Write(whitespace + siteNode.get_Url() + br); get_Response().Write(whitespace + siteNode.get_Description() + br); } else { if (node.get_Type().Equals("SomeBusinessObject")) { // If the IHierarchyData instance is a wrapper class on a // business object of some kind, you can retrieve the business // object by using the IHierarchyData.Item property. // SomeBusinessObject busObj = node.Item as SomeBusinessObject; } } if (node.get_HasChildren()) { IEnumerator children = ((IHierarchicalEnumerable)node.GetChildren()).GetEnumerator(); while (children.MoveNext()) { // Print out SiteMapNode Titles recursively. IHierarchyData hierarchicalNode = node.GetChildren().GetHierarchyData(children.get_Current()); PrintFullChildNodeInfo(hierarchicalNode); } } }//PrintFullChildNodeInfo

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からIHierarchyData.Item プロパティを検索する場合は、下記のリンクをクリックしてください。

- IHierarchyData.Item プロパティのページへのリンク