Можете да постигнете това, като направите желания ред редактируем и използвате събитието CellEditActivation. Инициализирайте вашия OLV и "delete-column", както следва:
// fire cell edit event on single click
objectListView1.CellEditActivation = ObjectListView.CellEditActivateMode.SingleClick;
objectListView1.CellEditStarting += ObjectListView1OnCellEditStarting;
// enable cell edit and always set cell text to "Delete"
deleteColumn.IsEditable = true;
deleteColumn.AspectGetter = delegate {
return "Delete";
};
След това можете да премахнете реда в манипулатора CellEditStarting веднага щом се щракне върху колоната:
private void ObjectListView1OnCellEditStarting(object sender, CellEditEventArgs e) {
// special cell edit handling for our delete-row
if (e.Column == deleteColumn) {
e.Cancel = true; // we don't want to edit anything
objectListView1.RemoveObject(e.RowObject); // remove object
}
}
За да подобрите това, можете да покажете изображение в допълнение към текста.
// assign an ImageList containing at least one image to SmallImageList
objectListView1.SmallImageList = imageList1;
// always display image from index 0 as default image for deleteColumn
deleteColumn.ImageGetter = delegate {
return 0;
};
Резултат:
![въведете описание на изображението тук](https://i.stack.imgur.com/11vYg.png)
Ако не искате да се показва никакъв текст до изображението, можете да използвате
deleteColumn.AspectToStringConverter = delegate {
return String.Empty;
};
Можете също така да зададете Aspect на празен низ, но считайте това за "най-добра практика". Ако все още връщате аспект, сортирането и групирането ще продължат да работят.
person
Rev
schedule
02.11.2012