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/

  • 相关阅读:
    一个微信小程序跳转到另一个微信小程序
    微信小程序 canIUse
    微信小程序 点击事件 传递参数
    jquery 在将对象作为参数传递的时候要转换成 JSON
    微擎后台进行GET提交
    微信小程序添加底部导航栏
    jquery 中 html与text函数的区别
    C++ int与char[]的相互转换
    Qt error: LNK1158 无法运行rc.exe解决办法
    Qt error C3615: constexpr 函数 "qCountLeadingZeroBits" 不会生成常数表达式
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/1777952.html
Copyright © 2011-2022 走看看