private void OnUIAColumnsCollectionChanged (object sender, CollectionChangeEventArgs args) { SWF.ColumnHeader column = (SWF.ColumnHeader) args.Element; if (args.Action == CollectionChangeAction.Add) { ListViewHeaderItemProvider itemProvider = new ListViewHeaderItemProvider (this, column); itemProvider.Initialize (); headerItems [column] = itemProvider; AddChildProvider (itemProvider); } else if (args.Action == CollectionChangeAction.Remove) { ListViewHeaderItemProvider itemProvider; if (headerItems.TryGetValue (column, out itemProvider)) { RemoveChildProvider (itemProvider); itemProvider.Terminate (); headerItems.Remove (column); } } else { foreach (ListViewHeaderItemProvider item in headerItems .Values) item.Terminate (); headerItems.Clear (); OnNavigationChildrenCleared (); } }
public override void InitializeChildControlStructure () { base.InitializeChildControlStructure (); //Event used to update columns in ListItem when View.Details listView.Columns.UIACollectionChanged += OnUIAColumnsCollectionChanged; foreach (SWF.ColumnHeader column in listView.Columns) { ListViewHeaderItemProvider item = new ListViewHeaderItemProvider (this, column); item.Initialize (); AddChildProvider (item); headerItems [column] = item; } }