To reproduce: 1. Add a RadPropertyGrid and use the following code: public partial class NewTestWindow : Form { public NewTestWindow() { InitializeComponent(); PropertyGridData data = new PropertyGridData(); (data as INotifyPropertyChanged).PropertyChanged += NewTestWindow_PropertyChanged; ppgItems.SelectedObject = data; Type type = ppgItems.SelectedObject.GetType(); MemberInfo[] members = type.GetMembers(); foreach (MemberInfo m in members) { Attribute[] attributes = Attribute.GetCustomAttributes(m); foreach (Attribute attr in attributes) { if (attr is BrowsableCondition) { BrowsableCondition condition = attr as BrowsableCondition; PropertyGridItem gridItem = ppgItems.Items[m.Name]; gridItem.Visible = false; } } } } private void NewTestWindow_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (ppgItems.SelectedObject != null) { PropertyInfo enableProperty = ppgItems.SelectedObject.GetType().GetProperty(e.PropertyName); bool? value = enableProperty.GetValue(ppgItems.SelectedObject, null) as bool?; if (value.HasValue) { Type type = ppgItems.SelectedObject.GetType(); MemberInfo[] members = type.GetMembers(); foreach (MemberInfo m in members) { Attribute[] attributes = Attribute.GetCustomAttributes(m); foreach (Attribute attr in attributes) { if (attr is BrowsableCondition) { BrowsableCondition condition = attr as BrowsableCondition; PropertyGridItem gridItem = ppgItems.Items[m.Name]; gridItem.Visible = value.Value; } } } } } ppgItems.PropertyGridElement.PropertyTableElement.Update(PropertyGridTableElement.UpdateActions.Resume); } } public class PropertyGridData : INotifyPropertyChanged { public string Item { get; set; } [Browsable(true)] [BrowsableCondition("Enable")] public bool A0 { get; set; } [Browsable(true)] [BrowsableCondition("Enable")] public bool A1 { get; set; } [Browsable(true)] [BrowsableCondition("Enable")] public bool A2 { get; set; } [Browsable(true)] [BrowsableCondition("Enable")] public bool A3 { get; set; } [Browsable(true)] [BrowsableCondition("Enable")] public bool A4 { get; set; } [Browsable(true)] [BrowsableCondition("Enable")] public bool A5 { get; set; } public string Anything { get; set; } private bool _enable; public bool Enable { get { return _enable; } set { _enable = value; RaisePropertyChanged("Enable"); } } public event PropertyChangedEventHandler PropertyChanged; public void RaisePropertyChanged(string propertyName) { if (this.PropertyChanged != null) this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public class BrowsableCondition : Attribute { public BrowsableCondition(string propertyName) { this.PropertyName = propertyName; } public string PropertyName { get; set; } } 2. Run the application. The RadPropertyGrid has a checkbox with Enable property. When selected, other properties are displayed (A0, A1, A2, A3, A4, A5). When the user marks some of these checkboxes that were hidden and then uncheck the Enable property, the PropertyGridItemElement component throws a System.NullReferenceException.