/// <summary> /// Create an AccordionPane's item (either Header or Content) and raise the ItemCreated event /// </summary> /// <param name="dataItem">Item's data</param> /// <param name="index">Index</param> /// <param name="itemType">Type of the item (Header or Content)</param> /// <param name="container">Control to fill</param> /// <param name="template">Template for the binding</param> /// <param name="dataBind">Whether or not to bind</param> private void CreateItem(object dataItem, int index, AccordionItemType itemType, AccordionContentPanel container, ITemplate template, bool dataBind) { if (template == null) return; AccordionItemEventArgs itemArgs = new AccordionItemEventArgs(container, itemType); OnItemCreated(itemArgs); container.SetDataItemProperties(dataItem, index, itemType); template.InstantiateIn(container); if (dataBind) { container.DataBind(); OnItemDataBound(itemArgs); } }
public AccordionItemEventArgs(AccordionContentPanel item, AccordionItemType type) { _item = item; _type = type; }
/// <summary> /// Internal constructor used to intialize a databound pane's content /// </summary> /// <param name="dataItem">DataItem</param> /// <param name="dataIndex">DataIndex</param> /// <param name="type">AccordionItemType</param> internal AccordionContentPanel(object dataItem, int dataIndex, AccordionItemType type) : this() { SetDataItemProperties(dataItem, dataIndex, type); }
/// <summary> /// Assign values to the data binding properties /// </summary> /// <param name="dataItem">Data item to bind to</param> /// <param name="dataIndex">Index in the data source of this item</param> /// <param name="type">Whether this item is a Header or Content section</param> internal void SetDataItemProperties(object dataItem, int dataIndex, AccordionItemType type) { _dataItem = dataItem; _dataIndex = dataIndex; _type = type; }