Возможно, вы могли бы помочь мне понять, почему я получаю необработанное исключение «Invalid XAML» в дизайнере Visual Studio 2010 при попытке сделать следующее на Page
.Silverlight 4: «Invalid XAML» с использованием конвертера в DataTemplate
У меня есть Converter
с именем DateTimeConverter
, который преобразует дату в немецкую строку даты. Преобразователь работает нормально. Я включил имена и добавил следующее к ресурсам + страницы:
<navigation:Page.Resources>
<myClasses:DateTimeConverter x:Key="dateTime" />
</navigation:Page.Resources>
Теперь у меня есть поле со списком, который я хочу, чтобы привязать к списку объектов. Я делаю привязку в коде, но я хотел бы определить шаблон данных. Таким образом, я добавил в свой макет следующее:
<ListBox x:Name="lbConversation" BorderBrush="#00000000">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="0" Padding="4">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Message, Mode=OneWay}" />
<TextBlock Text="{Binding TimeStamp, Mode=OneWay, Converter={StaticResource dateTime}}" />
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
И это отлично работает, когда я бегу. Однако в разделе кода код для шаблона данных недогружен, а дизайнер говорит «Недопустимый XAML». Когда я удаляю часть Converter=...
, эта ошибка исчезнет.
Это ошибка дизайнера? Что я могу сделать?
EDIT
Кстати: Точно такой же код не бросает ошибку в проекте WPF!
Вы создали сборку после определения конвертера в xaml и применения его в DataTemplate? – Jehof
Как я уже сказал в своем вопросе: все хорошо, когда я запускаю приложение, что подразумевает, что я его создал :-) Также: Я принял ответ, прежде чем я прочитал ваш комментарий, - который его решает. –
Для всех, кто приходит от Google: я также обнаружил, что у меня была эта проблема, когда я вытаскивал пространство имен в свой файл XAML, который больше не существовал. –