【问题标题】:.net 4.0 markup-extensions WPF.net 4.0 标记扩展 WPF
【发布时间】:2011-03-15 03:53:15
【问题描述】:

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

谈到这个问题的 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 作为 DependencyProperty; 返回提供值内部();

私有对象 ProvideValueInternal() { 对象值 = 空; 如果(目标属性!= null) { IFontManager fontManager = DisplayResourceManager.Instance.FontManager; 值 = fontManager.GetFont(Key); }

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

【问题讨论】:

    标签: c# .net wpf c#-4.0 markup-extensions


    【解决方案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;
            }
    

    【讨论】:

    • 我怀疑人们没有回答,因为您没有完全描述问题中的问题 - 您只是将它链接到其他地方。
    猜你喜欢
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    相关资源
    最近更新 更多