这可能适用于其他地方,但在 WinForms 中,当我使用绑定(bind)时,我发现许多方法想要获取要绑定(bind)到的属性的名称。像这样的东西:
class Person
{
public String Name { get { ... } set { ... } }
public int Age { get { ... } set { ... } }
}
class PersonView
{
void Bind(Person p)
{
nameControl.Bind(p,"Name");
ageControl.Bind(p,"Age");
}
}
我一直遇到的一个大问题是“姓名”和“年龄”被指定为字符串。这意味着如果有人重命名 Person 的属性之一,编译器将无济于事。代码可以正常编译,但绑定(bind)会被破坏。
有没有我错过的解决这个问题的标准方法?感觉我需要一些关键字,也许叫做 stringof 来匹配现有的 typeof。你可以像这样使用它:
ageControl.Bind(p,stringof(p.Age).Name);
stringof 可以返回一些类,这些类具有获取完整路径、部分路径或字符串的属性,因此您可以自己解析它。
这样的事情已经可行了吗?
最佳答案
看看这个code snippet我已经在另一个问题中发布了,它可以帮助你! (但前提是您使用的是 .NET 3.5)
最好的问候
奥利弗·哈纳皮
关于c# - 有没有办法使 C# 绑定(bind)静态工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466587/