How to: Disable Property Editors Based on a Business Rule
// Developer Express Code Central Example: // How to: Disable Property Editors Based on a Business Rule // // This example demonstrates how to hide and disable property editors via the // Conditional Appearance module (the obsolete Conditional Editor State module is // used in versions prior to 11.2). The complete description is available in the // How to: Disable Property Editors Based on a Business Rule // (ms-help://DevExpress.Xaf/CustomDocument3221.htm) help topic. // // You can find sample updates and versions for different programming languages here: // http://www.devexpress.com/example=E1672 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; using DevExpress.ExpressApp.ConditionalAppearance; using DevExpress.ExpressApp.Editors; namespace EditorStateExample.Module { [DefaultClassOptions] [ImageName("BO_Person")] public class Contact : BaseObject { public Contact(Session session) : base(session) { } public string Name { get { return GetPropertyValue<string>("Name"); } set { SetPropertyValue<string>("Name", value); } } [ImmediatePostData] public bool IsMarried { get { return GetPropertyValue<bool>("IsMarried"); } set { SetPropertyValue<bool>("IsMarried", value); } } [Appearance("Single", Visibility = ViewItemVisibility.Hide, Criteria = "!IsMarried", Context="DetailView")] public string SpouseName { get { return GetPropertyValue<string>("SpouseName"); } set { SetPropertyValue<string>("SpouseName", value); } } [ImmediatePostData] public string Address1 { get { return GetPropertyValue<string>("Address1"); } set { SetPropertyValue<string>("Address1", value); } } [Appearance("AddressOneIsEmpty", Enabled = false, Criteria = "IsNullOrEmpty(Address1)")] public string Address2 { get { return GetPropertyValue<string>("Address2"); } set { SetPropertyValue<string>("Address2", value); } } } }