2009-04-23 3 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

고마워, 나는 그 스레드를 계속 주시 할거야. 사실 나는 그 포럼을 계속 주시 할 것입니다! NB : 두 번째 링크는 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

관련 문제