Creating cancelable event C# with Example



Creating cancelable event C# with Example

A cancelable event can be raised by a class when it is about to perform an action that can be canceled, such as the 
FormClosing event of a Form. 
To create such event: 
Create a new event arg deriving from CancelEventArgs and add additional properties for event data. 
Create an event using EventHandler and use the new cancel event arg class which you created. 
Example 
In the below example, we create a PriceChangingEventArgs event for Price property of a class. The event data 
class contains a Value which let the consumer know about the new . The event raises when you assign a new value 
to Price property and lets the consumer know the value is changing and let them to cancel the event. If the 
consumer cancels the event, the previous value for Price will be used: 
PriceChangingEventArgs 
public class PriceChangingEventArgs : CancelEventArgs 
{ 
int value; 
public int Value 
{ 
get { return value; } 
} 
public PriceChangingEventArgs(int value) 
{ 
this.value = value; 
} 
} 
Product 
public class Product 
{ 
int price; 
public int Price 
{ 
get { return price; } 
set 
{ 
var e = new PriceChangingEventArgs(value); 
OnPriceChanging(e); 
if (!e.Cancel) 
price = value; 
} 
} 
public event EventHandler PropertyChanging; 
protected void OnPriceChanging(PriceChangingEventArgs e) 
{ 
var handler = PropertyChanging; 
if (handler != null) 
PropertyChanging(this, e); 
} 
 

} 

0 Comment's

Comment Form

Submit Comment