Alright so my terminology when it comes to C# isn't great, so I'll attempt to explain this with a small example. If you create a class which you are using within a PropertyGrid and you have the following values:
class Test
{
public Point example { get; set; }
}
This will produce a PropertyGrid which has an expandable object "example" which has fields X and Y in order to create a "Point".
I'm attempting to create an object "name" which has fields "firstname" and "lastname", so I have:
class Test
{
public Name example { get; set; }
}
public struct Name
{
public string firstname { get; set; }
public string lastname { get; set; }
}
This however isn't working as intended.
I think I need to override some method(s) in order to get this working, however since I don't really have the terminology down for PropertyGrids it is difficult for me to find a solution.
Any help would be great.
After a lot of looking around I finally was able to figure it out, the missing keyword was "ExpandableObjectConverter."
Anyway, here is example code:
public Form1()
{
InitializeComponent();
Person x = new Person();
propertyGrid1.SelectedObject = x;
}
public class Person
{
public string Caption { get; set; }
[TypeConverter(typeof(ExpandableObjectConverter))]
public class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
public override string ToString()
{
return LastName + ", " + FirstName;
}
}
private Name _name = new Name();
public Name testName
{
get { return _name; }
}
}
PropertyGrids sure are confusing.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With