public DialogResult ShowDialog(List<HeaderAttrabute> currentHeaders) { List<HeaderAttrabute> displayHeaders = new List<HeaderAttrabute>(); foreach (HeaderAttrabute header in currentHeaders) { if (header.IsShow) { HeaderAttrabute displayHeader = new HeaderAttrabute(); displayHeader.Assign(header); displayHeaders.Add(displayHeader); } } BindDisplayHeaders(displayHeaders); if (ShowDialog() == DialogResult.OK) { foreach (HeaderAttrabute header in currentHeaders) { header.IsShow = displayHeaders.Contains(header); if (!header.IsShow) { displayHeaders.Add(header); } } currentHeaders.Clear(); currentHeaders.AddRange(displayHeaders); } return this.DialogResult; }
private void MoveItemPosition(bool isMoveUp) { if (lbxDisplayField.SelectedIndices.Count > 0) { int selectedIndex = lbxDisplayField.SelectedIndex; bool canWork = isMoveUp ? selectedIndex > 0 : selectedIndex < lbxDisplayField.Items.Count - 1; if (canWork) { HeaderAttrabute temp = new HeaderAttrabute(); temp.Assign(lbxDisplayField.SelectedItem as HeaderAttrabute); List<HeaderAttrabute> source = lbxDisplayField.DataSource as List<HeaderAttrabute>; source.RemoveAt(selectedIndex); if (isMoveUp) selectedIndex--; else selectedIndex++; source.Insert(selectedIndex, temp); lbxDisplayField.DataSource = null; BindDisplayHeaders(source); lbxDisplayField.SelectedIndex = selectedIndex; } } }