2009-04-23 30 views
1

WPF FrameworkElementサブクラスのプロパティにTypeConverterAttribute属性を適用しました。このプロパティの型はBitmapSourceです。私のTypeConverterが呼び出されないのはなぜですか?

しかし、TypeConverterは決して作成または呼び出されません。これは、ImageSourceで指定されたTypeConverterが優先されるためですか?

データバインディングの問題をデバッグしようとしています。エラーメッセージは、プロパティに属性を追加することが効果がなかったしていることを示唆し、私のTypeConverterクラスの言及していません:

System.Windows.Data Error: 6 : 'TargetDefaultValueConverter' converter failed to convert value '../SmallItemIcons/Gallery.png' (type 'String'); fallback value will be used, if available. BindingExpression:Path=SmallImage.ImageUri; DataItem='ItemSettings' (HashCode=32104365); target element is 'Bitmap' (Name=''); target property is 'Source' (type 'BitmapSource') IOException:'System.IO.IOException: Cannot locate resource 'smallitemicons/gallery.png'. 
    at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access) 
    at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access) 
    at System.IO.Packaging.PackWebResponse.CachedResponse.GetResponseStream() 
    at System.IO.Packaging.PackWebResponse.GetResponseStream() 
    at System.IO.Packaging.PackWebResponse.get_ContentType() 
    at System.Windows.Media.Imaging.BitmapDecoder.SetupDecoderFromUriOrStream(Uri uri, Stream stream, BitmapCacheOption cacheOption, Guid& clsId, Boolean& isOriginalWritable, Stream& uriStream, UnmanagedMemoryStream& unmanagedMemoryStream, SafeFileHandle& safeFilehandle) 
    at System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache) 
    at System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy) 
    at System.Windows.Media.ImageSourceConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) 
    at MS.Internal.Data.DefaultValueConverter.ConvertHelper(Object o, Type destinationType, DependencyObject targetElement, CultureInfo culture, Boolean isForward) 
    at MS.Internal.Data.TargetDefaultValueConverter.Convert(Object o, Type type, Object parameter, CultureInfo culture) 
    at System.Windows.Data.BindingExpression.ConvertHelper(IValueConverter converter, Object value, Type targetType, Object parameter, CultureInfo culture)' 

答えて

2

チェックアウト私はこの前に直面して来て、私が変換されるクラスを所有しているの贅沢を持っていたので、それを無視してきました。しかし、私はこれを試したところ、according to MSDNになるはずです。つまり、それは確かにではなく、の仕事のようです。

私はこれをWPF Disciples forumで提起しました。私は回避策も提供しています。

+0

ありがとう、私はそのスレッドに注目します。実際に私はそのフォーラムに注目していきます! 注:2番目のリンクはhttp://groups.google.com/group/wpf-disciples/browse_thread/thread/9f7bb40b7413fcd – mackenir

+0

になります。リンクは今修正されました - ありがとうございます。 –

-2

あなたのバインディングでそれを使用するためにXAMLで変換オブジェクトを作成する必要があります。 this article

<local:MyConverter key="myconverterorsomething"/> 

<TextBlock Text="{Binding Path=TimeOfSale, 
    Converter={StaticResource myconverterorsomething}, 
    ConverterParameter=' \{0:dd-MMM-yyyy hh:mm\}'}" /> 
+0

これはバリューコンバータです。私はTypeConverterステージをデバッグしようとしているので、TypeConverterを設定しようとしています。 – mackenir

+0

MSDNの例:http://msdn.microsoft.com/en-us/library/bb546926.aspx –

+0

これは、TypeConverterの属性が、プロパティではなく変換される種類に関連付けられている場合の例です。財産への帰属後者の使い方は私がやろうとしていることです。 – mackenir

関連する問題