原因不明的错误:"Markup Extensions结束后出现意外令牌"

McG*_*gle 8 silverlight wpf xaml visual-studio-2010

将应用程序从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>
Run Code Online (Sandbox Code Playgroud)

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

McG*_*gle 19

问题是StringFormat价值 - WPF可以容忍它没有被单引号包裹,但显然Silverlight不能.

改变这个:

<TextBlock Text="{Binding DataPoint.DataItem.Price,StringFormat={}{0:0.00#}}" />
Run Code Online (Sandbox Code Playgroud)

对此:

<TextBlock Text="{Binding DataPoint.DataItem.Price,StringFormat='{}{0:0.00#}'}" />
                                                                ^           ^
Run Code Online (Sandbox Code Playgroud)

删除错误.

把它作为从WPF转换到Silverlight的危险.

  • 当你访问我的地区时,为你准备了一杯中国绿茶.非常感谢. (2认同)