2013-07-25 42 views
6

Sau khi chuyển đổi một ứng dụng từ WPF để Silverlight, Visual Studio được chỉ ra một lỗi biên dịch lạ trong một trong các tập tin XAML:lỗi không rõ nguyên nhân: "Mã bất ngờ sau khi kết thúc của Markup Extensions"

Error 11 Unexpected Token after end of Markup Extension.

Không có dấu hiệu cho thấy dòng nào gây ra lỗi, nhưng mã vi phạm có vẻ như sau:

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

Nguyên nhân gây ra lỗi này là gì?

Trả lời

17

Vấn đề là giá trị StringFormat - WPF có thể chấp nhận nó không bị gói trong dấu nháy đơn, nhưng dường như Silverlight không thể.

Thay đổi này:

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

này:

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

loại bỏ các lỗi.

Đặt điều này xuống dưới dạng mối nguy hiểm khi chuyển từ WPF sang Silverlight.

+1

Tách trà xanh Trung Quốc cho bạn khi bạn ghé thăm khu vực của tôi. Cảm ơn rất nhiều. – dotNET