2011-03-15 45 views
1

我又回到了另一个恼人的问题。问题出在.net 4.0框架的TargetProperty类型转换似乎有一些问题,这也是msdn论坛中报道的。我已经提出了我在这里使用的代码。有人可以给我一个解决方案吗?.net 4.0 markup-extensions WPF

的MSDN链接,谈到这个问题,粘贴如下: http://social.msdn.microsoft.com/Forums/en/wpf/thread/931d7bff-90b6-4a70-bb0b-3a097e1301a1

 
var targetHelper = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget)); 
      targetProperty = targetHelper.TargetProperty as DependencyProperty; 
      return ProvideValueInternal();

private object ProvideValueInternal() { object value = null; if (targetProperty != null) { IFontManager fontManager = DisplayResourceManager.Instance.FontManager; value = fontManager.GetFont(Key); }

if (Converter != null) { value = Converter.Convert(value, targetProperty.PropertyType, null, CultureInfo.CurrentCulture); } return value; }

回答

1

我不知道,如果人们选择不回答这个问题,认为这只是愚蠢或者是因为他们不知道这个问题的答案。但无论如何,我会给我找到的解决方案。在.NET 4.0中的targetHelper.TargetProperty不返回正确的预期的类型,而是我从目标对象找出来如下图所示

 if (targetHelper != null) 
     { 
      if (targetHelper.TargetObject is Setter) 
      { 
       targetProperty = (targetHelper.TargetObject as Setter).Property; 
      } 
     } 
     if (targetProperty == null) 
     { 
      targetProperty = targetHelper.TargetProperty as DependencyProperty; 
     } 
+2

我怀疑的人没有回答,因为你没”不要完全描述问题中的问题 - 你只是把它连接到其他地方。 – 2011-03-16 08:47:45

+0

哦!对不起!! @丹Puzey – Anee 2011-03-16 09:03:14