void UpdateUnnamedObjectAdorner() { AdornerLayer layr = AdornerLayer.GetAdornerLayer(this); bool FoundAdorner = false; if (layr != null) { Adorner[] adorners = layr.GetAdorners(this); if (adorners != null) { foreach (Adorner adr in adorners) { UnnamedObjectAdorner uoa = adr as UnnamedObjectAdorner; if (uoa != null) { //update all properties from attributes. FoundAdorner = true; SetUnnamedObjectAdornerProperties(uoa); } } if (!FoundAdorner) { UnnamedObjectAdorner adorner = new UnnamedObjectAdorner(this); SetUnnamedObjectAdornerProperties(adorner); layr.Add(adorner); } } } }
void SetUnnamedObjectAdornerProperties(UnnamedObjectAdorner adorner) { foreach (PropertyInfo prop in adorner.GetType().GetProperties()) { foreach (PropertyItem item in this.Attributes) { if (item.PropertyName == prop.Name) { //item.Value; if (prop.PropertyType == typeof(int)) { int i = 0; int.TryParse(item.Value, out i); prop.SetValue(adorner, i, null); } else { prop.SetValue(adorner, item.Value, null); } break; } } } }