XAF中实现树形属性或树形编辑

 1.在列表编辑器中

2.在属性编辑器中

3.实现代码如下

ExpandedBlockStart.gif 代码
using  System;
using  System.ComponentModel;

using  DevExpress.Xpo;
using  DevExpress.Data.Filtering;

using  DevExpress.ExpressApp;
using  DevExpress.Persistent.Base;
using  DevExpress.Persistent.BaseImpl;
using  DevExpress.Persistent.Validation;

namespace  XSolution1.Module
{
   [DefaultClassOptions]
    
public   class  Employee : BaseObject
    {
        
public  Employee(Session session) :  base (session) { }

        
private   string  _Name;
        
public   string  Name
        {
            
get
            {
                
return  _Name;
            }
            
set
            {
                SetPropertyValue(
" Name " ref  _Name, value);
            }
        }

        
private   string  _Note;
        
public   string  Note
        {
            
get
            {
                
return  _Note;
            }
            
set
            {
                SetPropertyValue(
" Note " ref  _Note, value);
            }
        }

        
private  Department _Department;
        
public  Department Department
        {
            
get
            {
                
return  _Department;
            }
            
set
            {
                SetPropertyValue(
" Department " ref  _Department, value);
            }
        }
    }

}

 

 

ExpandedBlockStart.gif 代码
using  System;
using  System.ComponentModel;
using  DevExpress.Xpo;
using  DevExpress.ExpressApp;
using  DevExpress.Persistent.Base;
using  DevExpress.Persistent.BaseImpl;
using  DevExpress.Persistent.Validation;
using  DevExpress.ExpressApp.Localization;
using  DevExpress.Persistent.Base.General;
namespace  XSolution1.Module

    [DefaultClassOptions]   
    
public   class  Department : BaseObject, IHCategory
    { 
        
private   string  name; 
        
private  Department parent; 
        
private   void  CheckCircularReferences(Department obj) 
        { Department currentObj 
=  obj;  while  (currentObj  !=   null
        {
            
if  (currentObj  ==   this ) {  throw   new  UserFriendlyException(ExceptionId.CircularReference);
            } currentObj 
=  currentObj.Parent; } } 
        
public  Department(Session session) :  base (session) { } 
        
public  Department(Session session,  string  name) :  this (session) {  this .name  =  name; } 
        [Association(
" DepartmentParent-DepartmentChild " )]        
        
public  XPCollection < Department >  Children 
        {
            
get  {  return  GetCollection < Department > ( " Children " ); }
        } 
        [Persistent, Association(
" DepartmentParent-DepartmentChild " )]        
        
public  Department Parent 
        { 
            
get  {  return  parent; } 
            
set  {
                  
if  ( ! IsLoading) 
                  { 
                      CheckCircularReferences(value);
                  }
                parent 
=  value; OnChanged( " Parent " );
            }
        } 
        
public   string  Name 
        { 
            
get  {  return  name; }
            
set  { name  =  value; OnChanged( " Name " ); } 
        } 
        IBindingList ITreeNode.Children 
        {
            
get  {  return  Children  as  IBindingList; }
        } 
        ITreeNode IHCategory.Parent 
        { 
            
get  {  return  Parent  as  IHCategory; } 
            
set  { Parent  =  value  as  Department; }
        }
        ITreeNode ITreeNode.Parent 
        { 
            
get  {  return  Parent  as  ITreeNode; }
        }
    }
}

 

转载于:https://www.cnblogs.com/Tonyyang/archive/2010/06/22/1762819.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值