在Silverlight中,我有一个超链接按钮定义如下:
<HyperlinkButton Content="{Binding FileName}" NavigateUri="{Binding MailLogAttachmentID, StringFormat=\/DownloadFile.aspx?objecttype\=proposalattachment&id\=\{0\}}" />
当我尝试查看设计器而不是XAML时,我得到一个未处理的异常发生错误(索引(从零开始)必须大于或等于零并且小于参数列表的大小)并且它让我可以选择重新加载设计师。在XAML中开发时,这也会破坏任何智能感知。如果我删除NavigateUri StringFormat表达式,一切都很好。应用程序编译正常,超链接按钮按预期工作。
我是否有另一种方法可以在不破坏设计师的情况下获得此功能?
答案 0 :(得分:6)
如果您不想要复杂的转义表达式,这应该可以解决问题:
<HyperlinkButton DataContext="{StaticResource s}" Content="{Binding FileName}">
<HyperlinkButton.NavigateUri>
<Binding Path="MailLogAttachmentID"
StringFormat="/DownloadFile.aspx?objecttype=proposalattachment&id={0}" />
</HyperlinkButton.NavigateUri>
</HyperlinkButton>
在任何情况下,产生异常的字符都是符号,所以如果你这样写,它也应该有用:
<HyperlinkButton Content="{Binding FileName}"
NavigateUri="{Binding MailLogAttachmentID, StringFormat=/DownloadFile.aspx?objecttype\=proposalattachment&amp;id\={0}}" />