示例#1
0
        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();
        }
示例#2
0
        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();
        }