PropertyGridControl.CollectionButtonsVisibility Event
Allows you to show and hide collection buttons (Add Item and Remove Item) based on custom logic.
Namespace: DevExpress.Xpf.PropertyGrid
Assembly: DevExpress.Xpf.PropertyGrid.v25.1.dll
NuGet Package: DevExpress.Wpf.PropertyGrid
Declaration
public event EventHandler<CollectionButtonsVisibilityEventArgs> CollectionButtonsVisibility
Event Data
The CollectionButtonsVisibility event's data class is CollectionButtonsVisibilityEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| ButtonKind | Gets the collection button‘s type. Inherited from CollectionButtonBaseEventArgs. |
| Handled | Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route. Inherited from RoutedEventArgs. |
| IsVisible | Gets or sets whether to display the collection button. |
| OriginalSource | Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class. Inherited from RoutedEventArgs. |
| RoutedEvent | Gets or sets the RoutedEvent associated with this RoutedEventArgs instance. Inherited from RoutedEventArgs. |
| Row | Gets a property grid row. Inherited from PropertyGridRowBaseEventArgs. |
| Source | Gets or sets a reference to the object that raised the event. Inherited from RoutedEventArgs. |
| Value | Gets a row’s value. Inherited from PropertyGridRowBaseEventArgs. |
The event data class exposes the following methods:
| Method | Description |
|---|---|
| InvokeEventHandler(Delegate, Object) | When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation. Inherited from RoutedEventArgs. |
| OnSetSource(Object) | When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes. Inherited from RoutedEventArgs. |
Remarks
Handle the CollectionButtonsVisibility event to implement custom logic that shows and hides collection buttons. The following code sample hides the Add Item button if the collection contains more than 5 items and hides the Remove Item button for the collection item whose ID is 0:

<dxprg:PropertyGridControl SelectedObject="{Binding DemoProduct}"
CollectionButtonsVisibility="OnCollectionButtonsVisibility"/>
using DevExpress.Xpf.PropertyGrid;
// ...
void OnCollectionButtonsVisibility(object sender, CollectionButtonsVisibilityEventArgs e) {
if (e.ButtonKind == CollectionButtonKind.Add) {
var collection = (SupplierList)e.Value;
e.IsVisible = collection.Count <= 5;
}
if (e.ButtonKind == CollectionButtonKind.Remove) {
var supplier = e.Value as Supplier;
if (supplier != null && supplier.ID == 0)
e.IsVisible = false;
}
}
Refer to the following help topic for more information: Collection Definitions.