Search code examples
silverlightvisual-studio-2010xamlsilverlight-4.0designer

Silverlight 4: "Invalid XAML" using Converter in DataTemplate


maybe you could help me understand why I get an unhandled exception "Invalid XAML" in Visual Studio 2010 designer when trying to do the following on a Page.

I have a Converter named DateTimeConverter that converts a date into a German date string. The converter works fine. I've included the namespace and added the following to the page's resources:

<navigation:Page.Resources>
    <myClasses:DateTimeConverter x:Key="dateTime" />
</navigation:Page.Resources>

Now I have a list box that I want to bind to a list of objects. I do the binding in code, but I would like to define the data template. Thus I've added the following to my layout:

<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>

And this works fine when I run. However, in the code section, the code for the data template is undercurled and the designer says "Invalid XAML". When I remove the Converter=... part, this error is gone.

Is this a designer bug? What can I do?

EDIT
By the way: The exact same code does not throw the error within a WPF project!


Solution

  • Just adding to this question as I found a solution.

    The solution to my case was here: http://forums.silverlight.net/post/618518.aspx

    Apparently you must not have a space character in your project name or assembly name. D'oh!

    Hope it helps.