XAF之Dashboard

本文介绍了一种特殊View——DashboardView的使用方法,包括如何在一个Frame中显示多个View,以及通过DashboardViewItem来展示不同类型的ViewItem,如StaticText、StaticImage等。文章还提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值