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();
            }

        }
  • 相关阅读:
    Dirichlet Process 和 Dirichlet Process Mixture模型
    也说说EM
    Seven Steps to Success Machine Learning in Practice
    matlab norm 范式
    nginx中时间的管理
    Android中解析网络请求的URL
    jsp if else c标签 总结
    Android开发系列之button事件的4种写法
    oracle中split的使用
    Unix C++(boost) 线程同步和线程组
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/2055537.html
Copyright © 2011-2022 走看看