9

将应用程序从 WPF 转换为 Silverlight 后,Visual Studio 在其中一个 XAML 文件中指出一个奇怪的编译器错误:

错误 11 标记扩展结束后出现意外令牌。

没有迹象表明哪一行导致了错误,但有问题的代码似乎是这样的:

<DataTemplate x:Key="ToolTipTemplate">
    <StackPanel Orientation="Horizontal">
        <TextBlock 
            Text="{Binding DataPoint.DataItem.Date,StringFormat={}{0:MM/dd/yyyy}}" 
            Foreground="{StaticResource ResourceKey=OtherColor}" />
        <TextBlock 
            Text="{Binding DataPoint.DataItem.Price,StringFormat={}{0:0.00#}}"  
            Foreground="{StaticResource ResourceKey=OtherColor}"/>
    </StackPanel>
</DataTemplate>

此错误的原因可能是什么?

4

1 回答 1

21

问题在于StringFormat价值——WPF 可以容忍它不被单引号包裹,但显然 Silverlight 不能。

改变这个:

<TextBlock Text="{Binding DataPoint.DataItem.Price,StringFormat={}{0:0.00#}}" />

对此:

<TextBlock Text="{Binding DataPoint.DataItem.Price,StringFormat='{}{0:0.00#}'}" />
                                                                ^           ^

删除错误。

将此视为从 WPF 转换为 Silverlight 的危险。

于 2013-07-25T17:26:54.933 回答