/* ----------------------------------------------------------------- */
        ///
        /// Create
        ///
        /// <summary>
        /// TreeViewBehavior オブジェクトを生成します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private TreeViewBehavior Create()
        {
            var m    = PresetMenu.DefaultContext.ToContextMenuGroup();
            var vm   = new CustomContextViewModel(m);
            var dest = new TreeViewBehavior(new TreeView());

            dest.Register(vm.Current, vm.Images);
            return(dest);
        }
        /* ----------------------------------------------------------------- */
        ///
        /// ShowCustomizeView
        ///
        /// <summary>
        /// コンテキストメニューのカスタマイズ画面を表示します。
        /// </summary>
        ///
        /// <param name="e">コンテキストメニュー</param>
        ///
        /* ----------------------------------------------------------------- */
        public override void ShowCustomizeView(QueryEventArgs <IEnumerable <ContextMenu> > e)
        {
            var n    = 0;
            var vm   = new CustomContextViewModel(e.Query);
            var view = new CustomizeMenu(new TreeView(), new TreeView());

            view.Updated += (_, __) => ++ n;
            view.Register(vm.Source, vm.Current, vm.Images);

            Assert.That(view.IsRegistered, Is.True);
            Assert.That(view.IsEditable, Is.False);
            Assert.That(view.Source.SelectedNode, Is.Not.Null);
            Assert.That(view.Target.SelectedNode, Is.Not.Null);
            Assert.That(n, Is.EqualTo(1));

            e.Cancel = !CustomizeContext(view);
            if (!e.Cancel)
            {
                e.Result = view.Result;
            }
        }