private void UpdateLinks(ComboBox comboBox) { BaseTemplate item = myTemplate.get_Items(int.Parse(comboBox.Tag.ToString())); if (item.GetType() == typeof(DefTypeTemplate)) { DefTypeTemplate defItem = item as DefTypeTemplate; foreach (KeyValuePair <int, ComboBox> kvp in myComboBoxes) { if (kvp.Key != defItem.ID) { BaseTemplate tmpItem = myTemplate.get_Items( int.Parse(kvp.Value.Tag.ToString())); if (tmpItem.LinkTo == item) { if (tmpItem.GetType() == typeof(DefTypeTemplate)) { DefTypeTemplate defTmpItem = tmpItem as DefTypeTemplate; string id = GetCDefDataID( comboBox.SelectedItem.ToString(), defTmpItem.Type); if (id != null) { // Notice that this causes another event. kvp.Value.Enabled = true; kvp.Value.SelectedIndex = kvp.Value.Items.IndexOf(id); } } else { AssetTemplate assetItem = tmpItem as AssetTemplate; string id = GetAssetLink( comboBox.SelectedItem.ToString(), assetItem.ControlID, assetItem.Element); if (id != null) { kvp.Value.Enabled = true; kvp.Value.SelectedIndex = kvp.Value.Items.IndexOf(id); } } } } } } }