private void listMonitorTimings_SelectedIndexChanged(object sender, EventArgs e) { var currDataSource = (ICollection <EncodedMonitorTimings>)(listMonitorTimings.DataSource); if (currDataSource != null) { int currIndex = listMonitorTimings.SelectedIndex; if (currIndex >= 0 && currIndex < currDataSource.Count) { EncodedMonitorTimings currTiming = currDataSource.ElementAt(currIndex); if (currTiming.ToString().StartsWith("ERROR")) { btnEditTiming.Enabled = false; btnCopyTiming.Enabled = false; } else { btnEditTiming.Enabled = true; btnCopyTiming.Enabled = true; } btnDeleteTiming.Enabled = true; return; } } btnEditTiming.Enabled = false; btnCopyTiming.Enabled = false; btnDeleteTiming.Enabled = false; }
public void TimingChangedCallback(string oldTiming, string newTiming) { if (oldTiming != null && newTiming.Equals(oldTiming, StringComparison.OrdinalIgnoreCase)) { return; } var listDs = (EncodedMonitorTimings[])listMonitorTimings.DataSource; EncodedMonitorTimings[] newDs = null; if (oldTiming != null) { newDs = new EncodedMonitorTimings[listDs.Length]; Array.Copy(listDs, newDs, listDs.Length); int changedIndex = Array.FindIndex(newDs, x => x.encodedName.Equals(oldTiming, StringComparison.OrdinalIgnoreCase)); if (changedIndex >= 0 && changedIndex < newDs.Length) { newDs[changedIndex].encodedName = newTiming; } } else { newDs = new EncodedMonitorTimings[(listDs == null) ? 1 : (listDs.Length + 1)]; if (listDs != null) { Array.Copy(listDs, newDs, listDs.Length); } newDs[newDs.Length - 1] = new EncodedMonitorTimings(newTiming); } var oldSelection = listMonitorTimings.SelectedIndex; listMonitorTimings.DataSource = newDs; listMonitorTimings.SelectedIndex = oldSelection; }