A simple example:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
radPropertyGrid1.SelectedObject = new MyClass();
}
[TypeConverter(typeof(ExpandableObjectConverter))]
public class First
{
[DisplayName("Name"), Category("first")]
public string Name { get; set; }
[DisplayName("Color"), Category("first")]
public Color MyColor { get; set; }
public First()
{
Name = "Foo";
MyColor = Color.Aqua;
}
public override string ToString()
{
return string.Empty;
}
}
[TypeConverter(typeof(ExpandableObjectConverter))]
public class Second
{
[DisplayName("SubName"), Category("Second")]
public string SubName { get; set; }
[DisplayName("SubColor"), Category("Second")]
public Color MySubColor { get; set; }
public Second()
{
SubName = "Any";
MySubColor = Color.Red;
}
public override string ToString()
{
return string.Empty;
}
}
public class MyClass
{
[DisplayName("First"), Category("Item0")]
public First Item0 { get; set; }
[DisplayName("Second"), Category("Item1")]
public Second Item1 { get; set; }
public MyClass()
{
Item0 = new First();
Item1 = new Second();
}
}
}
If I do a search, the RadPropertyGrid finds the name only in the second part of MyClass