The following example defines a collection class named MyCollection. The class is marked with a DefaultEventAttribute that specifies CollectionChanged as the default event.
|
<DefaultEvent("CollectionChanged")> _
Public Class MyCollection
Inherits BaseCollection
Public Event CollectionChanged (ByVal sender As Object, _
ByVal e As CollectionChangeEventArgs)
' Insert additional code.
End Class 'MyCollection
|
|
[DefaultEvent("CollectionChanged")]
public class MyCollection : BaseCollection {
private CollectionChangeEventHandler onCollectionChanged;
public event CollectionChangeEventHandler CollectionChanged {
add {
onCollectionChanged += value;
}
remove {
onCollectionChanged -= value;
}
}
// Insert additional code.
}
|
|
[DefaultEvent("CollectionChanged")]
public ref class TestCollection: public BaseCollection
{
private:
CollectionChangeEventHandler^ onCollectionChanged;
public:
event CollectionChangeEventHandler^ CollectionChanged
{
public:
void add(CollectionChangeEventHandler^ eventHandler)
{
onCollectionChanged += eventHandler;
}
protected:
void remove(CollectionChangeEventHandler^ eventHandler)
{
onCollectionChanged -= eventHandler;
}
}
// Insert additional code.
};
|
|
/** @attribute DefaultEvent("CollectionChanged")
*/
public static class MyCollection extends BaseCollection
{
private CollectionChangeEventHandler onCollectionChanged;
public void add_onCollectionChanged(CollectionChangeEventHandler value)
{
onCollectionChanged = (CollectionChangeEventHandler)
System.Delegate.Combine(onCollectionChanged, value);
}
public void remove_onCollectionChanged(CollectionChangeEventHandler
value)
{
onCollectionChanged = (CollectionChangeEventHandler)
System.Delegate.Remove(onCollectionChanged, value);
}
// Insert additional code.
} //MyCollection
|
The next example creates an instance of MyCollection. Then it gets the attributes for the class, extracts the DefaultEventAttribute, and prints the name of the default event.
|
Public Shared Function Main() As Integer
' Creates a new collection.
Dim myNewCollection As New MyCollection()
' Gets the attributes for the collection.
Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(myNewCollection)
' Prints the name of the default event by retrieving the
' DefaultEventAttribute from the AttributeCollection.
Dim myAttribute As DefaultEventAttribute = _
CType(attributes(GetType(DefaultEventAttribute)), DefaultEventAttribute)
Console.WriteLine(("The default event is: " & myAttribute.Name))
Return 0
End Function 'Main
|
|
public static int Main() {
// Creates a new collection.
MyCollection myNewCollection = new MyCollection();
// Gets the attributes for the collection.
AttributeCollection attributes = TypeDescriptor.GetAttributes(myNewCollection);
/* Prints the name of the default event by retrieving the
* DefaultEventAttribute from the AttributeCollection. */
DefaultEventAttribute myAttribute =
(DefaultEventAttribute)attributes[typeof(DefaultEventAttribute)];
Console.WriteLine("The default event is: " + myAttribute.Name);
return 0;
}
|
|
int main()
{
// Creates a new collection.
DefaultEventAttributeExample::TestCollection^ newCollection =
gcnew DefaultEventAttributeExample::TestCollection;
// Gets the attributes for the collection.
AttributeCollection^ attributes =
TypeDescriptor::GetAttributes(newCollection);
// Prints the name of the default event by retrieving the
// DefaultEventAttribute from the AttributeCollection.
DefaultEventAttribute^ attribute = (DefaultEventAttribute^)
attributes[DefaultEventAttribute::typeid];
Console::WriteLine("The default event is: {0}", attribute->Name);
}
|
|
public static void main(String[] args)
{
// Creates a new collection.
MyCollection myNewCollection = new MyCollection();
// Gets the attributes for the collection.
AttributeCollection attributes = TypeDescriptor.
GetAttributes(myNewCollection);
/* Prints the name of the default event by retrieving the
* DefaultEventAttribute from the AttributeCollection. */
DefaultEventAttribute myAttribute = (DefaultEventAttribute)attributes.
get_Item(DefaultEventAttribute.class.ToType());
Console.WriteLine("The default event is: " + myAttribute.get_Name());
} //main
|