Using a Custom Column Behavior Class |
The example shows how to create and use a custom column behavior.
Create a custom column behavior item. Remark: decorationg properites with BcfProperty or BcfMandatory attribute will cause BCF Editor to support the property.
public class UiInfoBehavior : BcfColumnBehaviorItemBase { [BcfProperty] public string Name { get; set; } [BcfProperty] public string ToolTip { get; set; } public string GetName() { return string.IsNullOrEmpty(Name) ? Column.Name : Name; } }
Create a custom column behavior to add typed access to the custom column behavior item.
public class MyColumnBehavior : BcfColumnBehavior { protected internal MyColumnBehavior(IEnumerable<BcfColumnBehaviorItemBase> behaviorItems) : base(behaviorItems) { UiInfo = behaviorItems.OfType<UiInfoBehavior>().FirstOrDefault() ?? new UiInfoBehavior(); } public UiInfoBehavior UiInfo { get; private set; } }
Create a custom column behavior factory to redirect column behavior creation to MyColumnBehavior.
public class MyColumnBehaviorFactory : BcfDataSetColumnBehaviorFactory { protected override BcfColumnBehavior CreateInstance(IEnumerable<BcfColumnBehaviorItemBase> behaviorItems) { return new MyColumnBehavior(behaviorItems); } }
With BCF Editor add UiInfoBehavior as column behavior items and MyColumnBehaviorFactory as dataset behavior item.
In code you can access MyColumnBehavior via:
var myColumnBehavior = (MyColumnBehavior)anyColumn.Behavior; var columnToolTip = myColumnBehavior.UiInfo.ToolTip; var columnUiName = myColumnBehavior.UiInfo.Name;