tpl*_*ner 12 c# propertygrid visual-studio
好吧所以我在C#方面的术语并不是很好,所以我将尝试用一个小例子来解释这个.如果您创建了一个在PropertyGrid中使用的类,并且您具有以下值:
class Test
{
public Point example { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这将生成一个PropertyGrid,它具有一个可扩展的对象"example",它具有字段X和Y,以便创建一个"Point".
我正在尝试创建一个对象"name",其中包含"firstname"和"lastname"字段,所以我有:
class Test
{
public Name example { get; set; }
}
public struct Name
{
public string firstname { get; set; }
public string lastname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然而,这并不按预期工作.
我认为我需要覆盖一些方法才能使其正常工作,但是由于我没有真正使用PropertyGrids的术语,因此我很难找到解决方案.
任何帮助都会很棒.
tpl*_*ner 15
经过大量的回顾,我终于能够弄明白,缺少的关键字是"ExpandableObjectConverter".
无论如何,这是示例代码:
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; }
}
}
Run Code Online (Sandbox Code Playgroud)
PropertyGrids肯定令人困惑.