TreeViewコントロールにはさまざまな外観を与えることができます。そのために、柔軟な画像カスタマイズ機能とカスタムユーザーインタフェース(UI)オプションを指定するプロパティが提供されています。TreeViewでは、ノード、接続線、および展開/折りたたみアイコンを表す画像を使用できます。ImageMemberPathプロパティを使用して、画像URLを含むデータ項目のプロパティの名前を指定することで、ノードに画像を追加できます。
このサンプルでは、electronics.png、phones.png、toys.png、およびhome.pngを使用しています。これらの画像は、アプリケーションの/Content/images/フォルダに保存されています。データソースにはImageフィールドが含まれており、その値として画像URLが含まれています。
次のコード例は、TreeViewノードに画像を追加する方法を示します。
C# |
コードのコピー
|
---|---|
using System; using System.Collections.Generic; using System.Linq; using System.Web; public class Property { public string Header { get; set; } public string Image { get; set; } public bool NewItem { get; set; } public Property[] Items { get; set; } public static Property[] GetData(UrlHelper urlHelper) { return new Property[] { new Property { Header = "電子機器", Image = urlHelper.Content("~/Content/images/electronics.png"), Items = new Property[] { new Property { Header="トリマー/シェーバー" }, new Property { Header="タブレット" }, new Property { Header="携帯電話", Image =urlHelper.Content("~/Content/images/phones.png"), Items = new Property[] { new Property { Header="Apple" }, new Property { Header="Motorola", NewItem=true }, new Property { Header="Nokia" }, new Property { Header="Samsung" }} }, new Property { Header="スピーカー", NewItem=true }, new Property { Header="モニター" } } }, new Property{ Header = "玩具", Image = urlHelper.Content("~/Content/images/toys.png"), Items = new Property[]{ new Property{ Header = "縫いぐるみ" }, new Property{ Header = "列車セット" }, new Property{ Header = "クレーンゲーム", NewItem = true }, new Property{ Header = "プロポ" }, new Property{ Header = "玩具銃" } } }, new Property{ Header = "ホーム", Image = urlHelper.Content("~/Content/images/home.png"), Items = new Property[] { new Property{ Header = "コーヒーメーカー" }, new Property{ Header = "パンメーカー", NewItem = true }, new Property{ Header = "ソーラーパネル", NewItem = true }, new Property{ Header = "仕事台" }, new Property{ Header = "プロパングリル" } } } }; } } |
TreeViewController
TreeViewController.cs |
コードのコピー
|
---|---|
using <ApplicationName>.Models; public ActionResult Index() { return View(Property.GetData(url)); } |
ビュー - Index.cshtml
Razor |
コードのコピー
|
---|---|
@using <ApplicationName.Models> @model Property[] @(Html.C1().TreeView() .Bind(Model) .DisplayMemberPath("Header") .ChildItemsPath("Items") .ImageMemberPath("Image")) |