예제 #1
0
        /// <summary>
        /// コンテナにViewをセットします。
        /// </summary>
        /// <param name="view">表示するViewを表すelfDynamicView。</param>
        private void setViewToContainer(elfDynamicView view)
        {
            this.container.Controls.Add(view);
            view.Parent      = this.container;
            view.Dock        = DockStyle.Fill;
            view.Visible     = true;
            this.currentView = view;

            this.addViewToCache(view);
        }
예제 #2
0
        /// <summary>
        /// 現在のViewをDisposeします。
        /// </summary>
        private void disposeCurrentView()
        {
            if (this.currentView != null)
            {
                // 現在のViewが常にLoadするViewの場合はリストに登録されていないので改めてDispose
                if (this.currentView.AlwaysLoad)
                {
                    this.currentView.Dispose();
                }
            }

            this.currentView = null;
        }
예제 #3
0
 /// <summary>
 /// キャッシュにViewを追加します。
 /// </summary>
 /// <param name="view">キャッシュに追加するelfDynamicView。</param>
 private void addViewToCache(elfDynamicView view)
 {
     if (!view.AlwaysLoad)
     {
         // 常にLoadする場合はキャッシュに追加しない
         var viewKey = view.GetType().FullName;
         // キーが存在しない場合は追加
         if (!this.viewDic.ContainsKey(viewKey))
         {
             this.viewDic.Add(view.GetType().FullName, view);
         }
     }
 }