Thanks for the code. I now see why the event isn’t working on C1PropertyGrid.
You should manually Raise the ValueChanged event on the control. See below modified code:-
Public Class PGEditor_Percent Inherits TextBox Implements ITypeEditorControl Dim pa as PropertyAttribute Public Sub Attach([property] As PropertyAttribute) Implements ITypeEditorControl.Attach Dim oBinding As New Binding([property].MemberName & ".DisplayValue") oBinding.Mode = BindingMode.TwoWay Me.SetBinding(TextBox.TextProperty, oBinding) pa=[property] End Sub Public Function Create() As ITypeEditorControl Implements ITypeEditorControl.Create Dim retval As New PGEditor_Percent Return retval End Function Public Sub Detach([property] As PropertyAttribute) Implements ITypeEditorControl.Detach End Sub Public Function Supports([Property] As PropertyAttribute) As Boolean Implements ITypeEditorControl.Supports Return ([Property].PropertyInfo.PropertyType Is GetType(Percent)) End Function Protected Overrides Sub OnTextChanged(e As System.Windows.Controls.TextChangedEventArgs) If (pa IsNot Nothing) Then Dim pc As New System.ComponentModel.PropertyChangedEventArgs(pa.PropertyInfo.Name) RaiseEvent ValueChanged(Me, pc) End If End Sub Public Event ValueChanged(sender As Object, e As ComponentModel.PropertyChangedEventArgs) Implements ITypeEditorControl.ValueChanged End Class
Regards