ASP.NET MVC コントロールヘルプ
MaxDepth
コントロールの使用 > TreeMap > TreeMapの使用 > MaxDepth

TreeMapコントロールでは、コントロールに同時に表示するレベルの数を定義することができます。必要な数の階層レベルを表示することができます。表示するレベルの数を引数としてMaxDepthメソッドを使用します。表示するレベルの数が大きいと、TreeMapがわかりにくくなる可能性があります(レベルの数とそれらが表す値による)。この例では、MaxDepthプロパティを2 に設定します。

次の図は、MaxDepthプロパティを2に設定した後のTreeMapコントロールを示しています。

次のコード例は、TreeMapでMaxDepthプロパティを設定する方法を示します。この例では、ThingSale.csモデルを使用します。

コードの場合

ThingSale.cs

C#
コードのコピー
public class ThingSale
    {
        private static List<string> Categories = new List<string> { "Music", "Video", "Books", "Electronics", "Computers & Tablets" };
        private static Dictionary<string, List<string>> AllCategories = new Dictionary<string, List<string>>();
        public string Category { get; set; }

        public double? Sales { get; set; }
        public List<ThingSale> Items { get; set; }

        public static void EnsureInitAllCategories()
        {
            if (AllCategories.Count > 0)
            {
                return;
            }

            AllCategories.Add("音楽の種類", new List<string> { "カントリー", "ロック", "クラシック", "サウンドトラック", "ジャズ", "エレクトロニック" });
            AllCategories.Add("カントリー", new List<string> { "クラシックカントリー", "カウボーイカントリー", "アウトローカントリー", "ウェスタンスイング", "ロードハウスカントリー" });
            AllCategories.Add("ロック", new List<string> { "ハードロック", "ブルースロック", "ファンクロック", "ラップロック", "ギターロック", "プログレッシブロック" });
            AllCategories.Add("クラシック", new List<string> { "交響曲", "室内楽" });
            AllCategories.Add("サウンドトラック", new List<string> { "映画サウンドトラック", "ミュージカルサウンドトラック" });
            AllCategories.Add("ジャズ", new List<string> { "スムーズジャズ", "ボーカルジャズ", "ジャズフュージョン", "スイングジャズ", "クールジャズ", "トラッドジャズ" });
            AllCategories.Add("エレクトロニック", new List<string> { "エレクトロニカ", "ディスコ", "ハウスミュージック" });

            AllCategories.Add("ビデオ", new List<string> { "映画", "テレビ" });
            AllCategories.Add("映画", new List<string> { "児童", "アクション", "アニメーション", "コメディ", "連続活劇", "恋愛" });
            AllCategories.Add("テレビ", new List<string> { "サイエンス・フィクション", "ドキュメンタリー", "ファンタジー", "戦争", "ホラー" });

            AllCategories.Add("本", new List<string> { "アート・アンド・フォタグラフィ", "児童書", "歴史", "ミステリー", "ロマンス", "SF&ファンタジー" });
            AllCategories.Add("アート・アンド・フォタグラフィ", new List<string> { "建築", "グラフィックデザイン", "ドローイング", "フォタグラフィ", "舞台芸術" });
            AllCategories.Add("児童書", new List<string> { "学習図鑑", "童話", "章本", "塗り絵の本", "絵本", "学習まんが" });
            AllCategories.Add("歴史", new List<string> { "古代史", "中世史", "ルネサンス" });
            AllCategories.Add("ミステリー", new List<string> { "スリラー&サスペンス", "ミステリー" });
            AllCategories.Add("ロマンス", new List<string> { "アクションアドベンチャー", "ロマンチックコメディ", "ロマンチックサスペンス", "西部劇", "歴史" });
            AllCategories.Add("SF&ファンタジー", new List<string> { "ファンタジー", "ゲーム", "サイエンスフィクション" });

            AllCategories.Add("電子デバイス", new List<string> { "カメラ", "ヘッドフォン", "携帯電話", "ウェアブルデバイス" });
            AllCategories.Add("カメラ", new List<string> { "デジタルカメラ", "フィルムカメラ", "レンズ", "ビデオ", "アクセサリー" });
            AllCategories.Add("ヘッドフォン", new List<string> { "イヤホンヘッドホン", "オーバーイヤーヘッドフォン", "Bluetoothヘッドフォン", "ノイズキャンセリングヘッドフォン", "オーディオファイルヘッドフォン" });
            AllCategories.Add("携帯電話", new List<string> { "携帯電話", "アクセサリー" });
            AllCategories.Add("アクセサリー", new List<string> { "バッテリー", "Bluetoothヘッドセット", "Bluetoothスピーカー", "充電器", "スクリーンプロテクター" });
            AllCategories.Add("ウェアブルデバイス", new List<string> { "アクティビティトラッカー", "スマートウォッチ", "スポーツとGPS対応の時計", "3D VRゴーグルヘッドセット", "ウェアラブルカメラ", "スマートグラス" });

            AllCategories.Add("コンピュータ/タブレット", new List<string> { "デスクトップ", "パソコン", "タブレット" });
            AllCategories.Add("デスクトップ", new List<string> { "オールインワンPC", "ミニPC", "タワーPC" });
            AllCategories.Add("パソコン", new List<string> { "2in1パソコン", "通常のパソコン" });
            AllCategories.Add("タブレット", new List<string> { "IOS", "Android", "Fire OS", "Windows" });
        }
        public static IEnumerable<ThingSale> GetData()
        {
            EnsureInitAllCategories();
            var result = new List<ThingSale>();
            Categories.ForEach(cat =>
            {
                result.Add(Create(cat));
            });

            return result;
        }

        private static ThingSale Create(string category)
        {
            var rand = new Random(0);
            var item = new ThingSale { Category = category };
            if (!AllCategories.ContainsKey(category))
            {
                item.Sales = rand.NextDouble() * 100;
            }
            else
            {
                item.Items = new List<ThingSale>();
                AllCategories[category].ForEach(subCat =>
                {
                    item.Items.Add(Create(subCat));
                });
            }
            return item;
        }
    }

TreeMapController.cs

C#
コードのコピー
public class TreeMapController : Controller
    {
        // GET: TreeMap
        public ActionResult Index()
        {
            return View(ThingSale.GetData());
        }
    }

MaxDepth.cshtml

Razor
コードのコピー
@using <ApplicationName.Models>
@using System.Drawing;
@model IEnumerable<ThingSale>
        
@(Html.C1().TreeMap().Id("TreeMap")
    .Binding("Sales")
    .BindingName("Category")
    .ChildItemsPath("Items")
    .Bind(Model)
    .MaxDepth(2)
    .DataLabel(dlb => dlb.Position(C1.Web.Mvc.Chart.LabelPosition.Center).Content("{name}")))