XAF之Dashboard

來源:互聯網
上載者:User

          Dashbord View是一種較特殊的View,它可以在一個Frame裡緊密地顯示多個View。

         DashboardView中的每個View由一個DashboardViewItem表示。在Application Model中DashboardViewItem節點下的IModelDashboardViewItem.View屬性對應了該DashboradViewItem。當一個DashboradView需要在UI中顯示出來時,會調用它的View.CreateControls方法。該方法會為每個DashboardViewItem建立一個內嵌的Frame,使用該Frame來顯示VitemItem的View。注意,DashboradView支援很多種ViewItem:
StaticText,  StaticImage,  ActionContainerViewItem........

DashboradViewItem: 指定其View屬性為Bussiness Class的ListView或DetailView,顯示相應的內容;

ActionContainerViewItem: 一個Action的容器;

StaticText:純文字;

StaticImage:圖片;

PropertyEditor:;

ControlDetailItem:;

          若需要在代碼中使用DashboardView,需要Frame.ViewViewController.View屬性。使用DashboardView的CompositeView.Items,  CompositeView.AddItem,   CompositeView.RemoveItem,  CompositeView.InsetItem方法。CompositeView類是DashboardView的基類,它還有一個後裔類DetailView。

    下面是個簡單的例子,在一個DashboradView中顯示兩個ListView,一個DetailView和一個ActionContainer

 在Application Model的View節點下,添加一個DashboardView,然後再下面添加4個DashboardViewItem

具體過程參考xaf協助文檔。

若要訪問該DashboardView,需要定義一個ViewController,並將這個ViewController的TargetViewId設為DashboardView的ID

代碼中訪問:

private void DViewController1_Activated(object sender, EventArgs e)        {                DashboardView dv = View as DashboardView;                Console.WriteLine("DashboardView is null? " + (dv == null));                if (dv != null)                {                    //尋找到某個DashboardViewItem                    ViewItem povi=dv.FindItem("PersistentObject1");                    if (povi != null)                    {                        //操作資料                        ObjectSpace os=povi.View.ObjectSpace as ObjectSpace;                        IList<BusinessObjects.PersistentObject1> obj = os.GetObjects<Solution4.Module.BusinessObjects.PersistentObject1>();                        foreach (BusinessObjects.PersistentObject1 xx in obj)                        {                            PrintLine(xx.FullName);                        }                    }                    //刪除一個ViewItem                    dv.RemoveItem(dv.FindItem("DashboardViewNavActionContainer").Id);                    foreach (ViewItem vi in dv.Items)                    {                        //列印的Type都是DashboardViewItem                        Type oot= vi.ObjectType;                        string t = vi.GetType().Name;                        PrintLine( "Type: " + t + " id: " + vi.Id);                    }                }                    }        private void PrintLine(string message)        {            Console.WriteLine(message);        }

另外,使用Application Model建立DashboardView參考線上XAF協助文檔:http://documentation.devexpress.com/#Xaf/CustomDocument3296

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.