1

私は別の苛立たしい問題を抱えて戻ってきました。問題は .net 4.0 フレームワークにあります。TargetProperty 型のキャストに問題があるようで、msdn フォーラムでも報告されています。ここで使用するコードを掲載しました。誰かが私に解決策を提案できますか?

この問題について言及している MSDN リンクを以下に貼り付けます

var targetHelper = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget));
            targetProperty = targetHelper.TargetProperty as DependencyProperty;
            ProvideValueInternal() を返します。

プライベート オブジェクト ProvideValueInternal() { オブジェクト値 = null; if (targetProperty != null) { IFontManager fontManager = DisplayResourceManager.Instance.FontManager; 値 = fontManager.GetFont(Key); }

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

1 に答える 1

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-03-16T08:32:14.763 に答える