C# 间接更改类参数
我正在使用反射在TreeListView上显示一个类。 TreeListView使用一个C# 间接更改类参数,c#,C#,我正在使用反射在TreeListView上显示一个类。 TreeListView使用一个ChildrenGetter()委托,该委托获取要显示的节点(请参阅) 为了显示该类(我们将其称为反射类),树的根是该类的一个实例,ChildrenGetter(object x)使用反射返回反射类的每个子类的实例 例如,对于此类: public class Folder { public int BuildNumber { get; set; } public int MaxSpeed {
ChildrenGetter()
委托,该委托获取要显示的节点(请参阅)
为了显示该类(我们将其称为反射类),树的根是该类的一个实例,ChildrenGetter(object x)
使用反射返回反射类的每个子类的实例
例如,对于此类:
public class Folder
{
public int BuildNumber { get; set; }
public int MaxSpeed { get; set; }
}
根目录将是文件夹的一个实例,它将有2个子节点,包含BuildNumber和MaxSpeed的值
这工作正常,但仅用于显示。我希望能够在UI上更改BuildNumber和MaxSpeed的值,以便它们在树根持有的反射类的实例上实际更改
因此,有两种方法可以做到这一点:
- 树可以有包含其他类的类,深度不受限制。现在,我没有在任何地方使用structs
- 我不能改变课程。它是自动生成的
- 安全代码是首选,但如果没有其他可用的代码,不安全代码也可以
操作
并将其分配给标记或类似的内容
如果您有它的实例,您可以这样做(使用string
作为示例数据类型):
Action=val=>instance.X=val;
能否将操作
附加到它上,以便作为该属性的setter执行该操作?是的,但该操作如何知道要更改哪个参数?如果可以,请将操作val=>instance.X=val
附加到标记或其他内容上。这是我所希望的最佳解决方案。谢谢不客气。我加上它作为一个答案,请让我知道,如果它帮助你。
Action<string> action = val => instance.X = val;