XAF應用開發教程-內置Attribute功能列表,xafattribute
在 XAF 框架,一些用來生成一個業務應用程序的信息是在Attribute中指定。您可以將屬性應用到業務類 (或它的成員) 指定驗證規則,指定如何對數據進行顯示、 設置關系類等。本主題提供了有關在何處以及如何可以應用這些屬性的內置 XAF 框架屬性和信息的列表。
Attribute
|
說明
|
ActionAttribute
在業務對象上書寫方法,並在方法上面加上這個Attribute,在界面上,會出現一個簡單按鈕或彈出窗口按鈕.
AppearanceAttribute
在業務類或方法\屬性上面書寫此Attribute,可以控制相關的外觀控制,比如:控件是否禁用,是否只讀,背景顏色變化,字體,按鈕是否可用等.
AggregatedAttribute
在XPCollection<T>類型的屬性上面寫,可以控制主從表結構的業務對是否為聚合關系. 什麼聚合?就是主對象與子對象放到一起對應著業務上的一個內容,比如,訂單,訂單明細,這兩個表放到一起才是完整的.
CalculatedAttribute
在屬性上面寫,屬性的結果將是計算而來的.
CalculatedPersistentAliasAttribute
Applied to a business class. Allows you to dynamically configure a persistent alias for the target business class' property.
CaptionsForBoolValuesAttribute
在布爾類型的屬性上面寫,可以指定true,false的值顯示為指定的值,比如,換成男/女,真/假,是/否.但不要把這個做為漢化之用.
CodeRuleAttribute
Applied to a validation rule. Specifies that the rule is intended for a particular business class and does not have a corresponding validation attribute.
CollectionSourceModeAttribute
Specifies the mode of operation for the Collection Sources created by List Property Editors representing the
CollectionSourceModeAttribute's target property.
CreateInstanceAttribute
Specifies that a Domain Component's target method will create Domain Component instances.
CreatableItemAttribute
在BO/DC上面寫,在web下面與win下面不太一樣.可以快速新建菜單上顯示這個BO.
CriteriaOptionsAttribute
當使用條件編輯器時,在這裡指定一些選項,比如,條件應用到哪個BO上面.
DataSourceCriteriaAttribute
可以應用於BO類型的屬性,或XPCollection<T>上面,指定選擇(Link,鏈接)對象時,用什麼條件去過濾數據源,比如,有個客戶屬性,選擇客戶時,某一場景中需要顯示出所有年齡在30到50中間的客戶.
DataSourceCriteriaPropertyAttribute
與上面的功能相同,但這個條件不是寫死的,是從另一個屬性中讀過來的.這樣可以在那個屬性中動態的接出條件來.
DataSourcePropertyAttribute
功能與上面兩個類型,但直接從某個屬性中指定可選擇的數據來源了,更加動態了,不過要考慮性能問題還是少用為好,因為程序員拼出來的數據源,說不准怎麼來的.
DefaultClassOptionsAttribute
加上這個後,BO就在導航欄上出現了,快速新建按鈕也有了,報表中也會出現,我只觀察到了這麼多,這個就是個快捷方式.
DefaultListViewOptionsAttribute
在BO上面寫,一些常見的默認列表視圖的控制.
DelayedAttribute
在屬性上寫,延遲加載該屬性.官方說是EF用的.但我在xpo中也用過啊!
DetailViewLayoutAttribute
在屬性上寫,供在BO上對詳細視圖進行簡單的布局.
DomainComponentAttribute
在接口上寫,表明這是一個DC,在非持久化的BO上面寫,表明讓系統生成這個BO的視圖.
ExpandObjectMembersAttribute
寫在復雜類型的屬性上面,可以將屬性類型中的屬性展開,在視圖上直接顯示出來.比如,客戶.地址.詳細地址,與詳細地址同級別的還有一堆的屬性,用了這個後就可以一次性的顯示出來了.
FieldSizeAttribute
字符型屬性在庫中建立字段時的長度,-1為不限長.
FileAttachmentAttribute
應用到類上,表明值是文件類型,需要實現IFileData接口.
FileTypeFilterAttribute
在上傳文件時,如何過濾文件名?擴展名?
FriendlyKeyPropertyAttribute
Specifies a property that is considered an analog of the
GUID property to allow the use of more suitable values.
ImageEditorAttribute
圖像編輯器的一些設置.
ImageNameAttribute
寫在BO上面,設置一個圖標,在列表上,詳細視圖上,都可以看到這個圖標.
ImagesForBoolValuesAttribute
寫在布爾型屬性上面,可以指定布爾型值的圖標,比如true用一個對號,false用一個叉叉.
ImmediatePostDataAttribute
在web下面有用,寫在屬性上,指示當值發生變化時,是否需要回發到服務端,比如, 總價=單價*數量,那麼,單位,數量變化時,總價需要做個計算,那麼就要在單價,數量上面加上這個Attribute.
IndexAttribute
在屬性上面寫,建表時,建個索引出來,為性能捉想.
KeyAttribute
寫在屬性上面,指示這個屬性就是主鍵.
ListEditorAttribute
指定要使用的列表控件.
ListViewFilterAttribute
給列表內置一些過濾條件,在界面上顯示一個下拉框,一選,就過濾啦.
LookupEditorModeAttribute
指示搜索對話框長什麼樣子,比如全部顯示在下拉框中,或是彈出個窗口,或是自動,自動是指超過25條(可改)則顯示彈出框.自動會有些性能影響,因為要算當前有多少條數據.
ModelDefaultAttribute
在代碼中寫ModelEditor中的默認值,很多東東可以用這個設置了,並且可以替換掉一些前面的屬性,比如本來可以用[XafDisplayName("顯示名")]改為[ModelDefault("Caption","顯示名")].至於Caption這個關鍵字要怎樣知道,可以打開ModelDeditor查看.
ModelNodesGeneratorAttribute
自己寫個類,是生成模型的,需要加這個.具體還是需要好幾步的.
NavigationItemAttribute
某個BO是否顯示在導航欄中.
NonCloneableAttribute
克隆模塊:不允許這個BO克隆.
NotClonedInfoAttribute
Applied to a business class. Specifies a business class' string property that can hold property values that were not cloned.
ObjectCaptionFormatAttribute
指示在詳細視圖中Bo的顯示標題
PropertyEditorAttribute
要使用什麼編輯器,默認都是自動的,只有想改變默認時才用這個.
Attributes from the Validation module:
RuleBaseAttribute,
RuleCombinationOfPropertiesIsUniqueAttribute,
RuleCriteriaAttribute,
RuleFromBoolPropertyAttribute,
RuleIsReferencedAttribute,
RuleObjectExistsAttribute,
RuleRangeAttribute,
RuleRegularExpressionAttribute,
RuleRequiredFieldAttribute,
RuleStringComparisonAttribute,
RuleUniqueValueAttribute,
RuleValueComparisonAttribute.
這幾個都是做驗證規則用的.
RuleCombinationOfPropertiesIsUniqueAttribute 組合唯一,在類上面,指定多個屬性,這些屬性是組合唯一的.
RuleCriteriaAttribute, 在類上面,數據必須滿足指定的條件.
RuleFromBoolPropertyAttribute, 在布爾型屬性上面,值必須為真.
RuleObjectExistsAttribute, 指定的對象必須存在.
RuleRangeAttribute, 屬性的值必須在指定的范圍內.
RuleRegularExpressionAttribute, 屬性的值必須滿足正則表達式的要求.
RuleRequiredFieldAttribute, 屬性是必填的.
RuleStringComparisonAttribute, 屬性的值和字符串進行比較.
RuleUniqueValueAttribute, 屬性的值必須是唯一的.
RuleValueComparisonAttribute.屬性的值和指定的值(另一個屬性)進行比較.
SearchClassOptionsAttribute
用於全文檢索的一些選項.
SearchMemberOptionsAttribute
也是全文檢索用的,設置哪些字段參與或不參與.
ToolTipAttribute
屬性的提示文字.
ViewItemAttribute
Applied to a custom View Item. Registers a View Item in an application and specifies the type of the Application Model's node used by a custom View Item.
VisibleInDetailViewAttribute
屬性在詳細視圖中是否可見
VisibleInListViewAttribute
屬性在列表視圖中是否可見
VisibleInLookupListViewAttribute
屬性在搜索視圖中是否可見.
VisibleInReportsAttribute
做報表時是否可以選擇這個BO.
XafDefaultPropertyAttribute
默認屬性,在引用類型被用於屬性時,用該引用類的哪個字段做為顯示標題. 比如,訂單中的客戶,選擇完成後,應該顯示客戶姓名,那麼[XafDefaultPropety("姓名")]寫在客戶BO上面即可.
XafDisplayNameAttribute
指定顯示名稱,比如BO叫Customer,[XafDisplayName("客戶")],寫到BO上面.
你也可以使用一些屬性是.net 提供的(比如 BrowsableAttribute, DefaultPropertyAttribute DisplayNameAttribute)
下面的列表是在 System.ComponentModel 命名空間下的,在XAF中他們是有效的.
Attribute
|
說明
|
備注
|
BrowsableAttribute
屬性是否可見,指定為false後,相當於詳細視圖,列表視圖,搜索視圖,都不可見了.就相當於一個快捷方式.
通常是要隱藏一個屬性時用它.
DefaultPropertyAttribute
和XafDefaultPropertyAttribute是一樣的.:
- 顯示在搜索編輯器中;
- 對象的標題,比如詳細視圖中;
- 全文檢索中也會被用到;
- 顯示在列表視圖的第一列.
DescriptionAttribute
做自定義模塊時會用到.指示模塊的備注信息
DisplayNameAttribute
與 XafDisplayNameAttribute 相同.
PasswordPropertyTextAttribute
在字符串屬性上面寫,編輯器就變成了密碼輸入框.