public static TabItem RequireTabItem(SchemaObject target, Style tabItemStyle, TabControl tabControl, Db2SourceContext dataSet) { ISchemaObjectWpfControl ctrl = target.Control as ISchemaObjectWpfControl; if (ctrl != null) { ctrl.Target = dataSet.Refresh(target); return(ctrl.Parent as TabItem); } lock (TabItemLock) { if (ctrl != null) { return(ctrl.Parent as TabItem); } ctrl = NewControl(target, tabControl); if (ctrl == null) { return(null); } TabItem item = NewTabItem(tabControl, target.FullName, ctrl as UIElement, tabItemStyle); item.Tag = target; return(item); } }