How to: Change the Format Used for the FullAddress and FullName Properties 如何:更改用于FullAddress和FullName属性的格式
There are FullAddress and FullName properties in the Address and Person business classes that are supplied with the Business Class Library. These properties are calculable. The FullAddress property represents a string formed by the concatenation of the Country.Name, StateProvince, City, Street and ZipPostal property values. The FullName property is formed by the concatenation of the FirstName, MiddleName and LastName property values. The FullAddress and FullName properties are implemented so that you can change the order in which the items are concatenated. This topic details how to change this order. You can use this technique when implementing analogous business class properties.
地址和人员业务类中随商务舱库一起提供"全地址"和"全名"属性。这些属性是可计算的。FullAddress 属性表示由Country.Name、省、市、街和 ZipPostal 属性值的串联形成的字符串。FullName 属性由"名字"、中间名和姓氏属性值的串联形成。实现"全地址"和"全名"属性,以便可以更改项的串联顺序。本主题详细介绍了如何更改此顺序。在实现类似的 Business 类属性时,可以使用此技术。
The following images demonstrate how the FullAddress and FullName properties are calculated.
下图演示了如何计算全地址和全名属性。


To format FullAddress and FullName properties, the ObjectFormatter.Format method of the helper ObjectFormatter class is used. In this method, the format, according to which the property value is generated, is taken as a parameter. The format passed for the FullAddress property is specified by the Address class' FullAddressFormat property. The format that is passed for the FullName property is specified by the Person class' FullNameFormat property. Note that FullAddress and FullName properties are non-persistent calculated properties. As such, they require persistent aliases to be created for them to support sorting in Server mode (see CollectionSourceBase.DataAccessMode). For this purpose, there are additional FullNamePersistentAlias and FullAddressPersistentAlias properties. These properties are used to create persistent aliases.
要设置全地址和全名属性的格式,使用帮助器对象Formatter类的"对象Formatter.format"方法。在此方法中,生成属性值的格式被视为参数。为 FullAddress 属性传递的格式由地址类的"完全地址格式"属性指定。为 FullName 属性传递的格式由 Person 类的 FullNameFormat 属性指定。请注意,全地址和全名属性是非持久计算属性。因此,它们需要为它们创建持久别名以支持在服务器模式下排序(请参阅 CollectionSourceBase.DataAccessMode)。为此,还有其他全名持久别名和全地址持久别名属性。这些属性用于创建持久别名。
By default, the FullAddressFormat property is set to the Address class' defaultFullAddressFormat constant, which is the following: "{Country.Name}; {StateProvince}; {City}; {Street}; {ZipPostal}". The FullAddressFormatPersistentAlias property is set to the Address class' defaultFullAddressPersistentAlias constant, which is the following: "concat(Country.Name, StateProvince, City, Street, ZipPostal)". To change these property values, use the SetFullAddressFormat method (SetFullNameFormat for the Person class). These methods are static, so you can call them any place in your solution. For instance, you can specify the required format in the configuration file and read its value in a module's constructor. In addition, override the module's ModuleBase.CustomizeTypesInfo method and process the CalculatedPersistentAlias attribute via the static CalculatedPersistentAliasHelper.CustomizeTypesInfo method.
默认情况下,FullAddressFormat 属性设置为地址类的默认 FullAddressFormat 常量,如下所示:[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[Country.Name];[州省];[城市];[街道];[邮递]。""完全地址格式持久别名"属性设置为地址类的默认"完全地址持久别名"常数,如下所示:"concat(国家名称、省、市、街、Zippostal)"。要更改这些属性值,请使用 SetFullAddressFormat 方法(为 Person 类设置全名称格式)。这些方法是静态的,因此您可以调用它们在解决方案中的任何位置。例如,您可以在配置文件中指定所需的格式,并在模块的构造函数中读取其值。此外,重写模块的模块Base.自定义类型信息方法,并通过静态计算持久别名帮助器处理计算持久别名属性。
<configuration>
<appSettings>
<add key="FullAddressFormat" value="{Country.Name} {City} {Street}" />
<add key="FullAddressFormatPersistentAlias" value="concat(Country.Name, City, Street)" />
<!-- ... -->
</appSettings>
</configuration>
using DevExpress.Persistent.BaseImpl;
using System.Configuration;
//...
public sealed partial class MainDemoModule : ModuleBase {
static MainDemoModule() {
Address.SetFullAddressFormat(ConfigurationManager.AppSettings["FullAddressFormat"],
ConfigurationManager.AppSettings["FullAddressFormatPersistentAlias"]);
}
public override void CustomizeTypesInfo(ITypesInfo typesInfo) {
base.CustomizeTypesInfo(typesInfo);
CalculatedPersistentAliasHelper.CustomizeTypesInfo(typesInfo);
}
//...
}
After formatting a FullAddress property using the specified format, the property names that are enclosed in curly brackets will be replaced with the current object's property values (see the image above).
使用指定格式格式化 FullAddress 属性后,用大括号括起来的属性名称将替换为当前对象的属性值(参见上图)。
Analogous to the Address class' FullAddressFormat property, the Person class' FullNameFormat property is set to the defaultFullNameFormat constant, which is the following: "{FirstName} {MiddleName} {LastName}". The FullNamePersistentAlias property is set to the defaultFullNamePersistentAlias constant, which is the following: "concat(FirstName, MiddleName, LastName)". As the SetFullNameFormat method is static, you are free to call it where required. For instance, you can use the value specified in the configuration file as demonstrated in the code above.
与"地址类的 FullAddressFormat"属性类似,Person 类的 FullNameFormat 属性设置为默认的 FullNameFormat 常量,如下所示:"{NameName}{}}}{}}[姓氏][姓氏]"。"FullName 持久别名"属性设置为默认的"完全名称持久别名"常量,如下所示:"concat(名字、中间名、姓氏)"。由于 SetFullNameFormat 方法是静态的,因此您可以根据需要调用它。例如,可以使用配置文件中指定的值,如上面的代码所示。
Note 注意
In the Main Demo, you can set a custom format for the FullName property in the common module's constructor, as described above.
在主演示中,您可以为公共模块的构造函数中的 FullName 属性设置自定义格式,如上所述。
When implementing business class properties whose values require formatting, introduce static properties like FullAddressFormat and FullNameFormat, so that anyone using your business class can modify the formatting. The following code can be used as an example:
实现其值需要格式化的业务部门属性时,请引入静态属性,如 FullAddressFormat 和 FullNameFormat,以便使用业务类的任何人都可以修改格式。以下代码可用作示例:
public class SampleAddress : BaseObject {
private const string defaultFullAddressFormat = "{Country.Name}; {StateProvince};" +
" {City}; {Street}; {ZipPostal}";
private static string fullAddressFormat = defaultFullAddressFormat;
public static string FullAddressFormat {
get { return fullAddressFormat; }
set {
fullAddressFormat = value;
if(string.IsNullOrEmpty(fullAddressFormat)) {
fullAddressFormat = defaultFullAddressFormat;
}
}
}
public string FullAddress {
get {
return ObjectFormatter.Format(fullAddressFormat, this,
EmptyEntriesMode.RemoveDelimiterWhenEntryIsEmpty );
}
}
}
How to: Change the Format Used for the FullAddress and FullName Properties 如何:更改用于FullAddress和FullName属性的格式的更多相关文章
- [No0000149]ReSharper操作指南6/16-编码协助之其他协助
语法高亮 ReSharper扩展了默认Visual Studio的符号高亮显示.此外,它还会使用可配置的颜色突出显示字段,局部变量,类型和其他标识符.例如,ReSharper语法突出显示允许您轻松区分 ...
- PersistentAliasAttribute & CalculatedAttribute & CalculatedPersistentAliasAttribute
一,PersistentAliasAttribute-[XPO提供] Indicates that a property is not persistent and its value is calc ...
- RHCSA阶段笔记
命令终端字段含义介绍 [root@localhost ~]# 解释: root:当前登录系统用户名(root超级管理员) localhost :当前主机名 :当前用户所在目录( 为家目录) ,root ...
- 2、粘包现象(struct模块)
昨天我们所做的套接字是有漏洞的,它会出现粘包现象,没有发现这个问题的我们今天会进行演示.今天也会稍微讲解一下基于udp的套接字. 一.基于udp的套接字 udp是无链接的,先启动哪一端都不会报错 ud ...
- 29、粘包现象(struct模块)
昨天我们所做的套接字是有漏洞的,它会出现粘包现象,没有发现这个问题的我们今天会进行演示.今天也会稍微讲解一下基于udp的套接字. 本篇导航: 基于udp的套接字 粘包现象 粘包 解决粘包方法 stru ...
- MFC学习小结
2019/1/13 视频来源 一. MFC框架中一些重要的函数 1. InitInstance函数 应用程序类的一个虚函数,MFC应用程序的入口.初始化的作用. 2. PreCreateWindo ...
- 2019/12/10学习内容摘要(Linux文件和目录管理)
1.绝对路径和相对路径 *绝对路径:路径的写法一定是由根目录 / 写起的,例如 /usr/local/mysql *相对路径:路径的写法不是由根目录 / 写起的,例如 首先用户进入到 /home,然后 ...
- linux-RHEL7.0 —— 《Linux就该这么学》阅读笔记
目录 linux-RHEL7.0 安装部署 修改root密码 RPM(红帽软件包管理器) YUM(软件仓库) Systemd初始化进程 总结 linux命令 帮助命令 man 系统工作命令 echo ...
- Commit message 和 Change log 编写指南
来源:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit messa ...
随机推荐
- JQuery之选择集过滤
JQuery选择集过滤应用如下: 代码实现: <script src="JS/jquery-3.4.1.js"></script> <script&g ...
- 阿里巴巴 Service Mesh 落地的架构与挑战
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 方克明(溪翁 ...
- js之观察者模式和发布订阅模式区别
观察者模式(Observer) 观察者模式指的是一个对象(Subject)维持一系列依赖于它的对象(Observer),当有关状态发生变更时 Subject 对象则通知一系列 Observer 对象进 ...
- segment树(线段树)
线段树(segment tree)是一种Binary Search Tree或者叫做ordered binary tree.对于线段树中的每一个非叶子节点[a,b],它的左子树表示的区间为[a,(a+ ...
- Java 中的 Servlet&Http&Request
# 今日内容 : 1. Servlet 2. HTTP 协议 3. Request (就是 Servlet 中 service 方法的 形参. (有这个)) ## Servlet : 1. 概 ...
- luogu P1908 逆序对 |树状数组
题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计.最近,TOM老猫查阅到一个人类称之为"逆序对"的 ...
- HDU2833-WuKong(求不同起点,终点最短路的交点最多数量)
Liyuan wanted to rewrite the famous book "Journey to the West" ("Xi You Ji" in C ...
- io流函数略解(java_input流)[二]
背景 在写这篇随笔之前,已经写了io流函数略解(java_File)(一),主要是总结了File的一些操作,以及一些源码介绍. 在Io实际应用中,实际上运用在如果会操作File,实际上很难写出一点能实 ...
- 5分钟教你看大神操作keepalived服务
第11章 高可用服务(keepalived)的配置 11.1 高可用服务的概念 11.1.1 高可用服务总体概念 为了解决单点故障 减轻服务器的压力 11.1.2 高可用keepalived的概念 为 ...
- linux-touch 、mkdir、rm、pwd、which、locate、whatis
1.touch: 创建空文件,修改文件时间戳信息 atime(access time):最近访问文件内容时间 mtime(modify time):最近修改文件内容时间 ctime(change ti ...