zoukankan      html  css  js  c++  java
  • UP V2

    using System;
        
    using System.Collections.Generic;
        
    using System.Linq;
        
    using System.ComponentModel;
        
    using DevExpress.ExpressApp;
        
    using DevExpress.ExpressApp.Win.Editors;
        
    using DevExpress.ExpressApp.Model;
        
    using DevExpress.XtraEditors;
        
    using System.Reflection;
        
    using DevExpress.XtraEditors.Controls;

        
    public class WinCustomDataSourceLookupEditor : WinPropertyEditor
        {
            
    private string dataSourceProperty = string.Empty;
            
    public WinCustomDataSourceLookupEditor(Type objectType, IModelMemberViewItem info)
                : 
    base(objectType, info)
            {
                
    this.ControlBindingProperty = "EditValue";
                dataSourceProperty 
    = info.DataSourceProperty;
            }

            
    protected override object CreateControlCore()
            {
                DevExpress.XtraEditors.LookUpEdit combo 
    = CreateControl();
                combo.Properties.DisplayMember 
    = "Key";
                combo.Properties.ValueMember 
    = "Value";
                LookUpColumnInfo luci1 
    = new LookUpColumnInfo("Key","名稱");
                LookUpColumnInfo luci2 
    = new LookUpColumnInfo("Value","ID");
                combo.Properties.Columns.Add(luci1);
                combo.Properties.Columns.Add(luci2);
                combo.Properties.QueryPopUp 
    += combo_QueryPopup;

                
    return combo;
            }

            
    protected override void Dispose(bool disposing)
            {
                LookUpEdit combo 
    = this.Control as LookUpEdit;
                
    if (combo != null)
                {
                    combo.Properties.QueryPopUp 
    -= combo_QueryPopup;
                }
                
    base.Dispose(disposing);
            }

            
    protected override void OnControlCreated()
            {
                UpdateComboValues();
                
    base.OnControlCreated();
            }

            
    private DevExpress.XtraEditors.LookUpEdit CreateControl()
            {

                LookUpEdit combo 
    = new LookUpEdit();
                combo.Properties.DisplayMember 
    = "Key";
                combo.Properties.ValueMember 
    = "Value";
                combo.Properties.DropDownRows 
    = 10;
                
    //combo.Properties.TextEditStyle = this.AllowEdit.ResultValue ? TextEditStyles.Standard : TextEditStyles.DisableTextEditor;

                
    // Do any more combo setups here
                return combo;
            }

            
    private void UpdateComboValues()
            {
                
    if (this.CurrentObject != null)
                {
                    LookUpEdit combo 
    = (LookUpEdit)this.Control;

                    
    try
                    {
                        Type t 
    = this.CurrentObject.GetType();
                        
    object datasource = null;
                        
    ////string[] values = (string[])((XPCustomObject)this.CurrentObject).GetMemberValue(this.dataSourceProperty);
                        PropertyInfo fi = t.GetProperty(this.dataSourceProperty);
                        
    if(fi != null )
                        {
                             datasource 
    = fi.GetValue(this.CurrentObject, null);// fi.GetValue(this.CurrentObject);
                             if (datasource != null)
                             {
                                 combo.Properties.DataSource 
    = datasource;
                             }
                        }
                    }
                    
    catch (Exception exception1)
                    {
                        Exception ex 
    = exception1;
                        
    throw new UserFriendlyException(ex);
                    }
                }
            }

            
    private void combo_QueryPopup(object sender, CancelEventArgs e)
            {
                UpdateComboValues();
            }

        }
  • 相关阅读:
    SpringBoot异步处理请求
    5本最佳的 Java 面向对象理论和设计模式的书籍
    彻底弄懂 HTTP 缓存机制 —— 基于缓存策略三要素分解法
    Java 性能优化的五大技巧
    Java 8 最佳技巧
    Java 并发的四种风味:Thread、Executor、ForkJoin 和 Actor
    在 Java 8 中避免 Null 检查
    关于创建java线程池问题的思考
    LuoguP1858 多人背包(DP)
    Luogu[YNOI2019]排序(DP,线段树)
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/2055537.html
Copyright © 2011-2022 走看看