在我的WPF应用程序中,我使用许多属性进行绑定。 所有属性通常只返回特殊XNode的值。
因此我写了一个方法,它获取并设置节点的值。
例如:
public int Radius
{
get
{
return GetNodeValue<int>("Radius");
}
set
{
SetNodeValue("Radius", value);
}
}
因为我的许多属性总是有相同的代码,所以如果我能以更短的方式做到这一点会更好。
我想过使用一个可以执行代码的特殊类:
public class CNodeProperty
{
public CNodeProperty(string name)
{
_Name = Name;
}
public static implicit operator int(CNodeProperty d)
{
return GetNodeValue<int>(_Name);
}
private string _Name;
}
public int Radius { get; set; } = new CNodeProperty("Radius");
这可以帮助我避免输入始终相同的代码。
问题:使用这种方式,我只能访问静态变量。但是在GetNodeValue
内部,我还必须访问具有该属性的类的局部变量(我也可以将其赋予CNodeProperty
的构造函数,但这不可能)。
我如何委托属性获取并设置为单独的类?