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);
|
||||
}
|
||||
|
||||
public static void AttachContextMenuToCell(this DataGridCell cell)
|
||||
public static void AttachContextMenu(this DataGridCell cell)
|
||||
{
|
||||
if (cell is not null && cell.ContextMenu is null)
|
||||
{
|
||||
|
||||
@ -22,7 +22,7 @@ namespace LibationAvalonia.Controls
|
||||
};
|
||||
|
||||
ToolTip.SetTip(myRatingElement, "Click to change ratings");
|
||||
cell?.AttachContextMenuToCell();
|
||||
cell?.AttachContextMenu();
|
||||
|
||||
if (Binding != null)
|
||||
{
|
||||
|
||||
@ -8,7 +8,7 @@ namespace LibationAvalonia.Controls
|
||||
{
|
||||
protected override IControl GenerateElement(DataGridCell cell, object dataItem)
|
||||
{
|
||||
cell?.AttachContextMenuToCell();
|
||||
cell?.AttachContextMenu();
|
||||
return base.GenerateElement(cell, dataItem);
|
||||
}
|
||||
}
|
||||
|
||||
@ -102,12 +102,25 @@ namespace LibationWinForms.GridView
|
||||
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
|
||||
|
||||
public DataGridView EditingControlDataGridView { get; set; }
|
||||
public int EditingControlRowIndex { 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 bool RepositionEditingControlOnValueChange => false;
|
||||
|
||||
@ -118,7 +131,7 @@ namespace LibationWinForms.GridView
|
||||
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 void PrepareEditingControlForEdit(bool selectAll) { }
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user