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/

  • 相关阅读:
    Ajax
    Guitar and Music Theory
    leetcode62 不同路径(Medium)
    leetcode49 字母异位词分组(Medium)
    leetcode3 无重复的最长子串(Medium)
    leetcode69 x的平方根(Easy)
    leetcode300 最长上升子序列(Medium)
    leetcode240 搜索二维矩阵II (Medium)
    leetcode34 在排序数组中查找元素的第一个和最后一个位置(Medium)
    leetcode31 下一个排列(Medium)
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/1777952.html
Copyright © 2011-2022 走看看