Cancel rating edit on escape
This commit is contained in:
parent
7ef666dc91
commit
0ed5062683
@ -19,7 +19,7 @@ namespace LibationAvalonia.Controls
|
|||||||
OwningColumnProperty = typeof(DataGridCell).GetProperty("OwningColumn", BindingFlags.Instance | BindingFlags.NonPublic);
|
OwningColumnProperty = typeof(DataGridCell).GetProperty("OwningColumn", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AttachContextMenuToCell(this DataGridCell cell)
|
public static void AttachContextMenu(this DataGridCell cell)
|
||||||
{
|
{
|
||||||
if (cell is not null && cell.ContextMenu is null)
|
if (cell is not null && cell.ContextMenu is null)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -22,7 +22,7 @@ namespace LibationAvalonia.Controls
|
|||||||
};
|
};
|
||||||
|
|
||||||
ToolTip.SetTip(myRatingElement, "Click to change ratings");
|
ToolTip.SetTip(myRatingElement, "Click to change ratings");
|
||||||
cell?.AttachContextMenuToCell();
|
cell?.AttachContextMenu();
|
||||||
|
|
||||||
if (Binding != null)
|
if (Binding != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -8,7 +8,7 @@ namespace LibationAvalonia.Controls
|
|||||||
{
|
{
|
||||||
protected override IControl GenerateElement(DataGridCell cell, object dataItem)
|
protected override IControl GenerateElement(DataGridCell cell, object dataItem)
|
||||||
{
|
{
|
||||||
cell?.AttachContextMenuToCell();
|
cell?.AttachContextMenu();
|
||||||
return base.GenerateElement(cell, dataItem);
|
return base.GenerateElement(cell, dataItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -102,12 +102,25 @@ namespace LibationWinForms.GridView
|
|||||||
EditingControlDataGridView.NotifyCurrentCellDirty(true);
|
EditingControlDataGridView.NotifyCurrentCellDirty(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnKeyDown(KeyEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.KeyCode == Keys.Escape)
|
||||||
|
{
|
||||||
|
EditingControlDataGridView.RefreshEdit();
|
||||||
|
EditingControlDataGridView.CancelEdit();
|
||||||
|
EditingControlDataGridView.CurrentCell.DetachEditingControl();
|
||||||
|
EditingControlDataGridView.CurrentCell = null;
|
||||||
|
|
||||||
|
}
|
||||||
|
base.OnKeyDown(e);
|
||||||
|
}
|
||||||
|
|
||||||
#region IDataGridViewEditingControl
|
#region IDataGridViewEditingControl
|
||||||
|
|
||||||
public DataGridView EditingControlDataGridView { get; set; }
|
public DataGridView EditingControlDataGridView { get; set; }
|
||||||
public int EditingControlRowIndex { get; set; }
|
public int EditingControlRowIndex { get; set; }
|
||||||
public bool EditingControlValueChanged { get; set; }
|
public bool EditingControlValueChanged { get; set; }
|
||||||
public object EditingControlFormattedValue { get => Rating; set => Rating = (Rating)value; }
|
public object EditingControlFormattedValue { get => Rating; set { } }
|
||||||
public Cursor EditingPanelCursor => Cursor;
|
public Cursor EditingPanelCursor => Cursor;
|
||||||
public bool RepositionEditingControlOnValueChange => false;
|
public bool RepositionEditingControlOnValueChange => false;
|
||||||
|
|
||||||
@ -118,7 +131,7 @@ namespace LibationWinForms.GridView
|
|||||||
BackColor = dataGridViewCellStyle.BackColor;
|
BackColor = dataGridViewCellStyle.BackColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool EditingControlWantsInputKey(Keys keyData, bool dataGridViewWantsInputKey) => false;
|
public bool EditingControlWantsInputKey(Keys keyData, bool dataGridViewWantsInputKey) => keyData == Keys.Escape;
|
||||||
public object GetEditingControlFormattedValue(DataGridViewDataErrorContexts context) => EditingControlFormattedValue;
|
public object GetEditingControlFormattedValue(DataGridViewDataErrorContexts context) => EditingControlFormattedValue;
|
||||||
public void PrepareEditingControlForEdit(bool selectAll) { }
|
public void PrepareEditingControlForEdit(bool selectAll) { }
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user