Reputation: 5375
I'm trying to create a delete button at the right of every row in a DevExpress GridControl, like this:
What I've done is added another column and set its ColumnEdit property to an instance of RepositoryItemButtonEdit. I handle the ButtonClick event, to delete a row.
I can determine which row I'm on from this code:
myGridView.GetRow(myGridView.FocusedRowHandle);
Because I don't want a text editor on my button, I set the TextEditStyle to HideTextEditor.
By default, the button shows an ellipsis.
To remove the ellipsis, I adjusted the Buttons property on the RepositoryItemButtonEdit. I set the Kind to Glyph and set the image to my X icon.
Unfortunately that seems to simply remove the button altogether.
Does anyone know a better way to do this, or a way to show a button with an image on it, in each grid row?
Upvotes: 5
Views: 12302
Reputation: 26997
I have summarized what I found in the DevExpress forum:
Use the ButtonEdit
control and set the TextEditStyle
property to HideTextEditor
. The Repository Item has a Buttons
collection through which you can add a caption, image etc.
In the Buttons
collection, change the "Kind" property to "Glyph".
You can use the CustomRowCellEdit
event to conditionally apply editors on a cell-by-cell basis.
Make sure you set the Button's Kind
property to "Glyph" and set the Caption
property to whatever text you'd like:
DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit buttonEdit =
new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
buttonEdit.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph;
buttonEdit.Buttons[0].Caption = "X";
buttonEdit.TextEditStyle =
DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
e.RepositoryItem = buttonEdit;
You should handle the GridView's CustomRowCellEdit
event, construct a new RepositoryItemButtonEdit
and assign it to the e.RepositoryItem property
.
Let me know if that works.
Upvotes: 3
Reputation: 5375
I discovered that there is actually a delete button kind. So, I do everything as in the question, but instead of choosing the kind Glyph, I choose Delete, and I don't need to select an image.
Upvotes: 3