DevExpress問題積累:DocumentManager問題


DevExpress 版本:14.2

 

目的:創建可拖拽的控件瀏覽視圖

過程:

      1、創建DocumentManager控件:DevExpress.XtraBars.Docking2010.DocumentManager DmUvw;

      2、創建在DocumentManager控件中加入WidgetView:DevExpress.XtraBars.Docking2010.Views.Widget.WidgetView widgetView1;

      3、通過代碼動態添加Document

        /// <summary>
        /// 添加Document
        /// </summary>
        /// <param name="doName"></param>
        public void AddDocument(string doName)
        {
            Document bd = new Document();
            bd.Caption = doName;
            DmUvw.View.Documents.Add(bd);
        }

       事件:其中UcTemp是自定義控件

       DmUvw.View.QueryControl += View_QueryControl;

        private void View_QueryControl(object sender, QueryControlEventArgs e)
        {
            string tempVmeName = e.Document.Caption;
            UcTemp ucTemp = new UcTemp(tempVmeName);
            e.Control = ucTemp;
        }

      4、通過代碼刪除Document

        /// <summary>
        /// 刪除Document
        /// </summary>
        /// <param name="doName"></param>
        public void DeleteDocument(string doName)
        {
            foreach (BaseDocument bd in DmUvw.View.Documents)
            {
                if (bd.Caption == doName)
                {
                    DmUvw.View.Documents.Remove(bd);
                    return;
                }
            }
        }

      問題:通過代碼刪除Document經常出現問題,刪除之后界面未刷新,例如加載5個Document。逐一進行刪除,偶爾出現一、兩個Document實際已刪除,但界面顯示未刪除的問題。

      解決辦法:多次試驗,最終偶發發現解決辦法。

      1、在widgetView1中增加StackGroup:DevExpress.XtraBars.Docking2010.Views.Widget.StackGroup stackGroup1;

      2、增加時將每個Document放入stackGroup1。

        /// <summary>
        /// 添加Document
        /// </summary>
        /// <param name="doName"></param>
        public void AddDocument(string doName)
        {
            Document bd = new Document();
            bd.Caption = doName;
            DmUvw.View.Documents.Add(bd);
            stackGroup1.Items.Add(bd);         }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM