XAF ORMDataModel构建的基础资料对象无法被调用显示的解决办法
2016-10-09 10:01
477 查看
修正,其实只要在基础资料类中加入[XafDefaultProperty("名称")]标签即可。
下面的是老的引用方法。
在Module项目中如果手工增加的XPO Business Object类,增加了[XafDefaultProperty("名称")]属性后,该对象被别的类调用就可以显示一个下拉列表。
View Code
这样,设计器添加的基础资料也能显示出来了。
namespace NEO.ERP.Module.BusinessObjects.Business { //引用显示名称 [XafDefaultProperty("名称")] public partial class 公共基础资料基类 { public 公共基础资料基类(Session session) : base(session) { } public override void AfterConstruction() { base.AfterConstruction(); } } }
下面的是老的引用方法。
在Module项目中如果手工增加的XPO Business Object类,增加了[XafDefaultProperty("名称")]属性后,该对象被别的类调用就可以显示一个下拉列表。
using System; using DevExpress.Xpo; using DevExpress.Data.Filtering; using System.Collections.Generic; using System.ComponentModel; using DevExpress.Persistent.Base; using DevExpress.ExpressApp.DC; using DevExpress.ExpressApp; namespace HelloXAF.Module.BusinessObjects.ORMDataModel_Base { [DefaultClassOptions] [XafDefaultProperty("编码")] public partial class 币别 { public 币别(Session session) : base(session) { } public override void AfterConstruction() { base.AfterConstruction(); } public override string ToString() { //if (!isDefaultPropertyAttributeInit) //{ string defaultPropertyName = string.Empty; XafDefaultPropertyAttribute xafDefaultPropertyAttribute = XafTypesInfo.Instance.FindTypeInfo(GetType()).FindAttribute<XafDefaultPropertyAttribute>(); if (xafDefaultPropertyAttribute != null) { defaultPropertyName = xafDefaultPropertyAttribute.Name; } else { DefaultPropertyAttribute defaultPropertyAttribute = XafTypesInfo.Instance.FindTypeInfo(GetType()).FindAttribute<DefaultPropertyAttribute>(); if (defaultPropertyAttribute != null) { defaultPropertyName = defaultPropertyAttribute.Name; } } if (!string.IsNullOrEmpty(defaultPropertyName)) { var defaultPropertyMemberInfo = ClassInfo.FindMember(defaultPropertyName); object obj = defaultPropertyMemberInfo.GetValue(this); if (obj != null) { return obj.ToString(); } } //isDefaultPropertyAttributeInit = true; //} //if (defaultPropertyMemberInfo != null) //{ // object obj = defaultPropertyMemberInfo.GetValue(this); // if (obj != null) // { // return obj.ToString(); // } //} return base.ToString(); } } }
View Code
这样,设计器添加的基础资料也能显示出来了。
相关文章推荐
- 关于调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法
- C#技巧【调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法】【C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决】
- jframe 对象(GroupedAction)传递无法调用对象的方法解决办法
- Word 图片无法显示,出现对话框:错误,嵌入对象无效的解决办法
- Word 图片无法显示,出现对话框:错误,嵌入对象无效的解决办法
- vs2015中c++中multiset容器定义对象时参数列表中显式调用greater无法被识别的解决办法
- 用Powerpoint打开ppt文件出现提示:"PowerPoint无法显示文件中某些幻灯片中的文字、图像或对象,“xx.ppt”解决办法
- Word 图片无法显示,出现对话框:错误,嵌入对象无效的解决办法
- Eclipse无法构建工程的解决办法。
- 保存的js无法执行的解决办法[原创]_基础知识_脚本之家
- chm无法显示的解决办法
- IE浏览器无法显示背景,字体显示很大问题的解决办法[转]
- 动网论坛帖子调用一会显示一会不显示解决办法
- 重新安装IIS后打开报表管理器出现“无法显示 XML 页”错误的解决办法。
- SecureCRT中文乱码和全屏无法显示菜单的解决办法
- IE无法显示验证码的解决办法
- 简单的XSL在FF下无法显示的原因和解决办法。
- JS文件中调用JS文件提示找不到对象的解决办法
- SQL数据库因为选定的用户拥有对象,所以无法除去该用户的解决办法
- ASP.NET调用Oracle组件提示无法装载DLL(oci.dll)错误的解决办法