// Função auxiliar para adição/edição de novo parâmetro private void OpenParamWindow(string param = "", string value = "", int itemPosition = -1) { AddParamWindow addParamWindow = new AddParamWindow(param, value); addParamWindow.ShowDialog(ref param, ref value); if (!string.IsNullOrEmpty(param) & !string.IsNullOrEmpty(value) & !string.IsNullOrWhiteSpace(value)) { PW_Parameter parameterObject = new PW_Parameter(); E_PWINFO receivedParam = (E_PWINFO)Enum.Parse(typeof(E_PWINFO), param); parameterObject.parameterName = param; parameterObject.parameterCode = (ushort)receivedParam; parameterObject.parameterValue = value; foreach (PW_Parameter item in lstParameters.Items) { if (item.parameterName == parameterObject.parameterName && itemPosition == -1) { MessageBox.Show(this, "Você não pode inserir duas vezes o mesmo parâmetro"); return; } } if (itemPosition != -1) { lstParameters.Items.RemoveAt(itemPosition); } lstParameters.Items.Add(parameterObject); } }
// Edita um parâmetro já adicionado private void lstParameters_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (lstParameters.SelectedIndex == -1) { return; } PW_Parameter param = (PW_Parameter)lstParameters.SelectedItem; OpenParamWindow(param.parameterName, param.parameterValue, lstParameters.SelectedIndex); }