internal static void ShowEditForm(Window owner, WorkItem workItem, WorkItem parentItem, WorkItemLinkTypeEnd linkType) { workItem.Open(); var editForm = new WorkItemFormControl { Item = workItem, ReadOnly = false }; var infoBar = new WorkItemInformationBar(); var window = new WorkItemWindow { wiFormHost = { Child = editForm }, wiInfoBarHost = { Child = infoBar }, WorkItem = workItem, ParentWorkItem = parentItem, LinkType = linkType, Owner = owner }; // Every time a work item field changes we need to update the info bar WorkItemFieldChangeEventHandler handleFieldChanged = delegate { infoBar.Refresh(editForm, string.Empty, string.Empty); }; window.WorkItem.FieldChanged += handleFieldChanged; // Additionally we need to update the info bar also upon first start infoBar.Refresh(editForm, string.Empty, string.Empty); window.ShowDialog(); // Unsubscribe form the event handler in order not to be notified anymore window.WorkItem.FieldChanged -= handleFieldChanged; window.Close(); }
public WorkItemEditorForm(WorkItemType workItemType, WorkItem workItem) { InitializeComponent(); frmWorkItemControl = new WorkItemFormControl(); XmlDocument xmlDocument = workItemType.Export(false); frmWorkItemControl.FormDefinition = xmlDocument.InnerXml; frmWorkItemControl.Dock = DockStyle.Fill; frmWorkItemControl.Item = workItem; this.Controls.Add(frmWorkItemControl); frmWorkItemControl.BringToFront(); }