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

        }
  • 相关阅读:
    Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。
    Linux-C基础知识学习:C语言作业-输入两个数,将两个数交换,按升序输出。
    C语言学习:结构体(笔记)--未完待续
    C语言学习:结构体(笔记)
    PHP之函数
    PHP之流程控制
    PHP之常量和变量
    PHP之数据类型
    PHP之标记风格和注释
    VMware虚拟机中各类文件作用详解
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/2055537.html
Copyright © 2020-2023  润新知