private void CreateEnumItems(EnumControl control, IEnumerable newItems) { foreach (EnumItemElement newItem in newItems) { var item = new EnumItem(); item.DataContext = newItem; SetBinding(item, EnumItem.ItemNameProperty, "Name"); SetBinding(item, EnumItem.LabelProperty, "Label"); //SetBinding(item, EnumItem.ValueProperty, "Value"); control.Items.Add(item); } }
private EnumControl CreateEnumControl(EnumElement type) { var control = new EnumControl(); control.DataContext = type; BindBlockControl(control); CreateEnumItems(control, type.Items); type.Items.CollectionChanged += (o, e) => { var oldItems = e.OldItems ?? type.Items.PopClearedItems(); if (oldItems != null) { foreach (EnumItemElement oldItem in oldItems) { var property = control.Items.First(i => i.DataContext == oldItem); control.Items.Remove(property); } } if (e.NewItems != null) { CreateEnumItems(control, e.NewItems); } }; return control; }