private void mainTree_NodeValueChanged(object sender, EventArgs e) { DropDownTreeNode node = mainTree.SelectedNode as DropDownTreeNode; if (node != null) { int nodeIdx = this.GetTreeNodeIndex(mainTree, node); if (nodeIdx > -1) { ComboItem comboItem = node.ComboBox.SelectedItem as ComboItem; // Get saved node from the ComboItem if (null == comboItem) { _selectedImagingObservations[nodeIdx] = new ObservationSelection(new ImagingObservationXML(null)); } else { ImagingObservationXML selectedImagingObservationXML = comboItem.TagValue as ImagingObservationXML; if (selectedImagingObservationXML != null) { if (_selectedImagingObservations[nodeIdx].xmlImagingObservation.Node == null || !_selectedImagingObservations[nodeIdx].xmlImagingObservation.codeValue.Exists || !_selectedImagingObservations[nodeIdx].xmlImagingObservation.codeValue.First.Value.Equals(comboItem.TagValue)) { _selectedImagingObservations[nodeIdx] = new ObservationSelection(new ImagingObservationXML(selectedImagingObservationXML.Node)); } } else { _selectedImagingObservations[nodeIdx] = new ObservationSelection(new ImagingObservationXML(null)); } } } } this.UpdateTreeImagingObservation(); }