zoukankan      html  css  js  c++  java
  • XAF 如何扩展应用程序模型(How to: Extend the Application Model )<一> ListView显示页脚信息

    how to display a group footer for List Views

    官方资料:http://documentation.devexpress.com/#Xaf/CustomDocument2785

    using System;
    using System.ComponentModel;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Text;

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Actions;
    using DevExpress.Persistent.Base;
    using DevExpress.ExpressApp.Model;
    using DevExpress.Data;
    using DevExpress.ExpressApp.Win.Editors;
    using DevExpress.XtraGrid.Views.Grid;
    using DevExpress.XtraGrid.Columns;

    namespace XafExtendTest.Module.SystemModule
    {
        
    public interface IModelListVewGroupFooterVisible : IModelNode
        {
            
    bool IsGroupFooterVisible { getset; }
        }

        
    public interface IModelColumnExtenderForGroupFooter 
        {
            [DefaultValue(SummaryItemType.None)]
            SummaryItemType GroupFooterSummaryType { 
    getset; }
        }

        
    public  class GroupFooterVisibleListViewController : ViewController<ListView>,IModelExtender
        {
            
    private void View_InfoSynchronized(object sender, EventArgs e)
            {
                IModelListVewGroupFooterVisible modelListView 
    = View.Model as IModelListVewGroupFooterVisible;
                
    if (modelListView != null && modelListView.IsGroupFooterVisible)
                {
                    GridListEditor gridListEditor 
    = View.Editor as GridListEditor;
                    
    if (gridListEditor != null)
                    {
                        GridView gridView 
    = gridListEditor.GridView;
                        
    for (int i = 0; i < gridView.GroupSummary.Count; i++)
                        {
                            IModelColumnExtenderForGroupFooter modelColumn 
    = View.Model.Columns[
                                gridView.GroupSummary[i].FieldName] 
    as IModelColumnExtenderForGroupFooter;
                            
    if (modelColumn != null)
                            {
                                modelColumn.GroupFooterSummaryType 
    = gridView.GroupSummary[i].SummaryType;
                            }
                        }
                    }
                }
            }
            
    protected override void OnViewControlsCreated()
            {
                
    base.OnViewControlsCreated();
                IModelListVewGroupFooterVisible modelListView 
    = View.Model as IModelListVewGroupFooterVisible;
                
    if (modelListView != null && modelListView.IsGroupFooterVisible)
                {
                    GridListEditor gridListEditor 
    = View.Editor as GridListEditor;
                    
    if (gridListEditor != null)
                    {
                        GridView gridView 
    = gridListEditor.GridView;
                        gridView.GroupFooterShowMode 
    = GroupFooterShowMode.VisibleAlways;
                        
    foreach (IModelColumn modelColumn in View.Model.Columns)
                        {
                            IModelColumnExtenderForGroupFooter modelColumnExtender 
    = modelColumn as IModelColumnExtenderForGroupFooter;
                            
    if (modelColumnExtender != null &&
                                modelColumnExtender.GroupFooterSummaryType 
    != SummaryItemType.None)
                            {
                                GridColumn gridColumn 
    = gridView.Columns[
                                    modelColumn.ModelMember.MemberInfo.BindingName];
                                gridView.GroupSummary.Add(modelColumnExtender.GroupFooterSummaryType,
                                    modelColumn.Id, gridColumn);
                            }
                        }
                    }
                }
            }
            
    protected override void OnActivated()
            {
                
    base.OnActivated();
                View.InfoSynchronized 
    += View_InfoSynchronized;
            }
            
    protected override void OnDeactivated()
            {
                View.InfoSynchronized 
    -= View_InfoSynchronized;
                
    base.OnDeactivated();
            }

            
    void IModelExtender.ExtendModelInterfaces(ModelInterfaceExtenders extenders)
            {
                extenders.Add
    <IModelListView, IModelListVewGroupFooterVisible>();
                extenders.Add
    <IModelColumn, IModelColumnExtenderForGroupFooter>();
            }
        }


    }

    欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/

  • 相关阅读:
    解析CIDR表示的IP段表示的范围
    [Python] 使用乘号复制变量引起的问题
    [Python] 字典dict添加二级键值的问题
    [Java] [刷题] 连续自然数和
    [Java] [刷题] 多个整数连接为最大整数问题
    [CentOS] 编译安装Python3后pip3安装的库如何在命令行调用
    [CentOS] 宝塔面板与Python3的恩怨情仇
    [易语言] 两种字节序的直观比较
    [Java] [刷题] Excel地址转换
    [Java] 运算精度
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/1777952.html
Copyright © 2011-2022 走看看