Add option to reorder ProductsGrid columns
This commit is contained in:
parent
aecc54401d
commit
9fe95bbddc
@ -128,6 +128,12 @@ namespace AppScaffolding
|
|||||||
|
|
||||||
if (!config.Exists(nameof(config.HiddenGridColumns)))
|
if (!config.Exists(nameof(config.HiddenGridColumns)))
|
||||||
config.HiddenGridColumns = Array.Empty<string>();
|
config.HiddenGridColumns = Array.Empty<string>();
|
||||||
|
|
||||||
|
if (!config.Exists(nameof(config.GridColumnsDisplayIndices)))
|
||||||
|
{
|
||||||
|
int startIndex = 0;
|
||||||
|
config.GridColumnsDisplayIndices = new int[30].Select(_ => startIndex++).ToArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Initialize logging. Run after migration</summary>
|
/// <summary>Initialize logging. Run after migration</summary>
|
||||||
|
|||||||
@ -187,6 +187,13 @@ namespace LibationFileManager
|
|||||||
set => persistentDictionary.SetNonString(nameof(HiddenGridColumns), value);
|
set => persistentDictionary.SetNonString(nameof(HiddenGridColumns), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Description("A DisplayIndex list of columns in ProductsGrid")]
|
||||||
|
public int[] GridColumnsDisplayIndices
|
||||||
|
{
|
||||||
|
get => persistentDictionary.GetNonString<int[]>(nameof(GridColumnsDisplayIndices));
|
||||||
|
set => persistentDictionary.SetNonString(nameof(GridColumnsDisplayIndices), value);
|
||||||
|
}
|
||||||
|
|
||||||
public enum BadBookAction
|
public enum BadBookAction
|
||||||
{
|
{
|
||||||
[Description("Ask each time what action to take.")]
|
[Description("Ask each time what action to take.")]
|
||||||
|
|||||||
@ -59,6 +59,7 @@
|
|||||||
//
|
//
|
||||||
this.gridEntryDataGridView.AllowUserToAddRows = false;
|
this.gridEntryDataGridView.AllowUserToAddRows = false;
|
||||||
this.gridEntryDataGridView.AllowUserToDeleteRows = false;
|
this.gridEntryDataGridView.AllowUserToDeleteRows = false;
|
||||||
|
this.gridEntryDataGridView.AllowUserToOrderColumns = true;
|
||||||
this.gridEntryDataGridView.AllowUserToResizeRows = false;
|
this.gridEntryDataGridView.AllowUserToResizeRows = false;
|
||||||
this.gridEntryDataGridView.AutoGenerateColumns = false;
|
this.gridEntryDataGridView.AutoGenerateColumns = false;
|
||||||
this.gridEntryDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
this.gridEntryDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
@ -96,6 +97,7 @@
|
|||||||
this.gridEntryDataGridView.RowTemplate.Height = 82;
|
this.gridEntryDataGridView.RowTemplate.Height = 82;
|
||||||
this.gridEntryDataGridView.Size = new System.Drawing.Size(1510, 380);
|
this.gridEntryDataGridView.Size = new System.Drawing.Size(1510, 380);
|
||||||
this.gridEntryDataGridView.TabIndex = 0;
|
this.gridEntryDataGridView.TabIndex = 0;
|
||||||
|
this.gridEntryDataGridView.ColumnDisplayIndexChanged += new System.Windows.Forms.DataGridViewColumnEventHandler(this.gridEntryDataGridView_ColumnDisplayIndexChanged);
|
||||||
//
|
//
|
||||||
// dataGridViewImageButtonBoxColumn1
|
// dataGridViewImageButtonBoxColumn1
|
||||||
//
|
//
|
||||||
@ -211,7 +213,7 @@
|
|||||||
// contextMenuStrip1
|
// contextMenuStrip1
|
||||||
//
|
//
|
||||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||||
this.contextMenuStrip1.Size = new System.Drawing.Size(181, 26);
|
this.contextMenuStrip1.Size = new System.Drawing.Size(61, 4);
|
||||||
//
|
//
|
||||||
// ProductsGrid
|
// ProductsGrid
|
||||||
//
|
//
|
||||||
|
|||||||
@ -39,15 +39,17 @@ namespace LibationWinForms
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
var hiddenGridEntries = Configuration.Instance.HiddenGridColumns;
|
//Restore Grid Display Settings
|
||||||
|
var config = Configuration.Instance;
|
||||||
|
var displayIndices = config.GridColumnsDisplayIndices;
|
||||||
|
|
||||||
contextMenuStrip1.Items.Add(new ToolStripLabel("Show / Hide Columns"));
|
contextMenuStrip1.Items.Add(new ToolStripLabel("Show / Hide Columns"));
|
||||||
contextMenuStrip1.Items.Add(new ToolStripSeparator());
|
contextMenuStrip1.Items.Add(new ToolStripSeparator());
|
||||||
|
|
||||||
|
var columnIndex = 0;
|
||||||
foreach (DataGridViewColumn column in _dataGridView.Columns)
|
foreach (DataGridViewColumn column in _dataGridView.Columns)
|
||||||
{
|
{
|
||||||
var visible = !hiddenGridEntries.Contains(column.DataPropertyName);
|
var visible = !config.HiddenGridColumns.Contains(column.DataPropertyName);
|
||||||
|
|
||||||
var itemName = column.DataPropertyName;
|
var itemName = column.DataPropertyName;
|
||||||
|
|
||||||
var menuItem = new ToolStripMenuItem()
|
var menuItem = new ToolStripMenuItem()
|
||||||
@ -60,6 +62,7 @@ namespace LibationWinForms
|
|||||||
contextMenuStrip1.Items.Add(menuItem);
|
contextMenuStrip1.Items.Add(menuItem);
|
||||||
|
|
||||||
column.Visible = visible;
|
column.Visible = visible;
|
||||||
|
column.DisplayIndex = displayIndices[columnIndex++];
|
||||||
}
|
}
|
||||||
|
|
||||||
// sorting breaks filters. must reapply filters after sorting
|
// sorting breaks filters. must reapply filters after sorting
|
||||||
@ -74,7 +77,9 @@ namespace LibationWinForms
|
|||||||
var menuItem = sender as ToolStripMenuItem;
|
var menuItem = sender as ToolStripMenuItem;
|
||||||
var propertyName = menuItem.Tag as string;
|
var propertyName = menuItem.Tag as string;
|
||||||
|
|
||||||
var column = _dataGridView.Columns.Cast<DataGridViewColumn>().FirstOrDefault(c => c.DataPropertyName == propertyName);
|
var column = _dataGridView.Columns
|
||||||
|
.Cast<DataGridViewColumn>()
|
||||||
|
.FirstOrDefault(c => c.DataPropertyName == propertyName);
|
||||||
|
|
||||||
if (column != null)
|
if (column != null)
|
||||||
{
|
{
|
||||||
@ -82,16 +87,12 @@ namespace LibationWinForms
|
|||||||
menuItem.Checked = !visible;
|
menuItem.Checked = !visible;
|
||||||
column.Visible = !visible;
|
column.Visible = !visible;
|
||||||
|
|
||||||
var config = Configuration.Instance;
|
Configuration.Instance.HiddenGridColumns =
|
||||||
|
_dataGridView.Columns
|
||||||
var hiddenColumns = new List<string>(config.HiddenGridColumns);
|
.Cast<DataGridViewColumn>()
|
||||||
|
.Where(c=>!c.Visible)
|
||||||
if (column.Visible && hiddenColumns.Contains(propertyName))
|
.Select(c => c.DataPropertyName)
|
||||||
hiddenColumns.Remove(propertyName);
|
.ToArray();
|
||||||
else if (!hiddenColumns.Contains(propertyName))
|
|
||||||
hiddenColumns.Add(propertyName);
|
|
||||||
|
|
||||||
config.HiddenGridColumns = hiddenColumns.ToArray();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void EnableDoubleBuffering()
|
private void EnableDoubleBuffering()
|
||||||
@ -276,5 +277,13 @@ namespace LibationWinForms
|
|||||||
private GridEntry getGridEntry(int rowIndex) => _dataGridView.GetBoundItem<GridEntry>(rowIndex);
|
private GridEntry getGridEntry(int rowIndex) => _dataGridView.GetBoundItem<GridEntry>(rowIndex);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
private void gridEntryDataGridView_ColumnDisplayIndexChanged(object sender, DataGridViewColumnEventArgs e)
|
||||||
|
{
|
||||||
|
Configuration.Instance.GridColumnsDisplayIndices
|
||||||
|
= _dataGridView.Columns
|
||||||
|
.Cast<DataGridViewColumn>()
|
||||||
|
.Select(c => c.DisplayIndex)
|
||||||
|
.ToArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user