2014-04-23 5 views
1

Я получаю исключение XamlParseException при попытке использовать конвертер. Я подозреваю, что ошибся в конвертере, но не могу его поймать.XamlParseException при использовании конвертера

Полный текст ошибки:

Первый шанс исключение типа 'System.Windows.Markup.XamlParseException' произошло в System.Windows.ni.dll

Дополнительная информация: Не удается создать экземпляр типа 'app.Converters.DimensionToText' [Line: 21 Позиция: 42]

namespace app.Converters 
{ 
    class DimensionToText : IValueConverter 
    { 
     public object Convert(object value, Type targetType, 
      object parameter, CultureInfo culture) 
     { 
      Dimensions dim = (Dimensions) value; 
      //bool param = (bool) parameter; 
      return dim.width.ToString().Trim() + "\"x " + dim.length.ToString().Trim() + "\"x " + dim.height.ToString().Trim() + "\""; 
     } 

     public object ConvertBack(object value, Type targetType, 
       object parameter, CultureInfo culture) 
     { 
      return value; 
     } 
    } 
} 

XAML части:

xmlns:converter="clr-namespace:app.Converters" 
... 
<phone:PhoneApplicationPage.Resources> 
    <converter:DimensionToText x:Key="DimensionToText"/> 
</phone:PhoneApplicationPage.Resources> 
... 
<TextBlock Style="{StaticResource PhoneTextNormalStyle}"> 
    <Run Text="Dimensions:"/> 
    <Run Text="{Binding information.dimensions, Converter={StaticResource DimensionToText}}"/> 
</TextBlock> 

Как ни странно в дизайне времени конвертер работает просто отлично. Любые предложения оценили

+2

Изменит ли делает преобразователь публичный класс поведение? –

+0

@ Vkt0rS. Ваше изменение не улучшило форматирование здесь. Это просто затрудняло чтение ошибки. – JLRishe

ответ

2

сделать ваш конвертер public

namespace app.Converters 
{ 
    public class DimensionToText : IValueConverter 
    { 
     public object Convert(object value, Type targetType, 
      object parameter, CultureInfo culture) 
     { 
      Dimensions dim = (Dimensions) value; 
      //bool param = (bool) parameter; 
      return dim.width.ToString().Trim() + "\"x " + dim.length.ToString().Trim() + "\"x " + dim.height.ToString().Trim() + "\""; 
     } 

     public object ConvertBack(object value, Type targetType, 
       object parameter, CultureInfo culture) 
     { 
      return value; 
     } 
    } 
} 
Смежные вопросы