我在共享库中有自定义的附加属性:
public class Freezable
{
public static bool GetIsFrozen(DependencyObject obj)
{
return (bool)obj.GetValue(IsFrozenProperty);
}
public static void SetIsFrozen(DependencyObject obj, bool value)
{
obj.SetValue(IsFrozenProperty, value);
}
public static readonly DependencyProperty IsFrozenProperty =
DependencyProperty.RegisterAttached("IsFrozen", typeof(bool), typeof(UIElement), new UIPropertyMetadata(false));
}此属性已在代码中测试,并且值已成功存储。
Freezable.SetIsFrozen(control, value);
var correctValue =Freezable.GetIsFrozen(control);但是,我正在尝试通过反射来获取我的属性。我有一个异常,那就是找不到属性(getMethod和setMethod都是空的)!
public void FindAttachedProperty(Type elementType, string propertyName)
{
MethodInfo getMethod = elementType.GetMethod("Get" + propertyName, BindingFlags.Public | BindingFlags.Static);
MethodInfo setMethod = elementType.GetMethod("Set" + propertyName, BindingFlags.Public | BindingFlags.Static);
}Canvas.Left,Canvas.Right运行良好,没有任何问题。我做错了什么,为什么我不能得到我的财产!?
发布于 2013-05-20 16:53:26
你的代码对我来说工作得很好。我最好的猜测是,当你调用FindAttachedProperty方法时,你给出的是System.Windows.Freezable作为elementType,而不是你自己的库实现。
https://stackoverflow.com/questions/16645391
复制相似问题