我使用反射在TreeListView(ObjectListView)上显示一个类。
TreeListView与ChildrenGetter()
委托一起使用,该委托获取要显示的节点(参见here)。
为了显示类(我们将其称为反射类),树的根是类的实例,而ChildrenGetter(object x)
使用反射返回反射类的每个子项的实例。
例如,对于这个类:
public class Folder
{
public int BuildNumber { get; set; }
public int MaxSpeed { get; set; }
}
root将是Folder的一个实例,它将有2个子节点,包含BuildNumber和MaxSpeed的值。
这样可以,但仅用于显示。我希望能够在UI上更改BuildNumber和MaxSpeed的值,以便它们实际上可以更改树根所包含的反射类的实例。
所以有两种方法可以做到这一点:
解决方案2是否可能?在C#中是否有一些指针可以允许这样的功能?
您能想到更好的解决方案吗?
注意:
答案 0 :(得分:1)
如果您能够将一些元数据附加到您创建的控件/树项目,则可以创建Action<T>
并将其分配给标记或类似内容。
如果你有它的实例,你可以这样(使用string
作为样本数据类型):
Action<string> action = val => instance.X = val;