// Simulate a currently non-existing pre-change event
// in DevExpress WinForms 13.2.5
// See http://www.devexpress.com/Support/Center/Question/Details/Q560491
public class MyGalleryControlGallery :
GalleryControlGallery
{
// ...
private GalleryItem MyLastCheckedItem { get; set; }
internal bool DuringCancelOfCheckChanged { get; set; }
protected override void OnCheckedChanged(GalleryItem item, bool forceSetItemCheck)
{
if (DuringCancelOfCheckChanged) return;
var lastItem = MyLastCheckedItem;
var args = new GalleryItemCheckChangingEventArgs
{
CurrentItem = lastItem,
NewItem = item,
Force = forceSetItemCheck
};
// Call my own, new event handler.
OnItemCheckedChanging(args);
if (args.Cancel)
{
DuringCancelOfCheckChanged = true;
try
{
if (lastItem != null) lastItem.Checked = true;
item.Checked = false;
}
finally
{
DuringCancelOfCheckChanged = false;
}
}
else
{
base.OnCheckedChanged(item, forceSetItemCheck);
MyLastCheckedItem = item;
}
}
// ...
}
Comments