【发布时间】:2011-04-04 11:52:36
【问题描述】:
作为 WPF 数据绑定的一部分,有没有一种简单的方法来转换或格式化字符串?
假设我想创建一个基于字符串标签的 WPF 超链接元素。
<Hyperlink NavigateUri="{Binding Tag}">
<Run Text="{Binding Tag}" />
</Hyperlink>
但我需要先为 NavigateUri 属性转换标签,使其成为真正的超链接或 PackUri。
例如,如果我的标签是“folksonomy”,我想创建一个字符串,例如:http://www.example.com/tags/tagview?tag=folksonomy
实现这一目标的最佳方法是什么? XAML 中有字符串操作函数吗?我必须写一个转换器吗?我是否必须构建一个完整的单独 ViewModel 类来进行一些字符串格式化?
更新: 超链接元素似乎发生了一些奇怪的事情。我可以得到答案中建议的 StringFormat 语法,适用于普通 TextBlock 的 Text 属性,但不适用于超链接的 NavigateUri 属性。
正如一个答案所述,这可能是因为 NavigateUri 属性正式采用 Uri,而不是字符串。显然需要自定义转换器或 ViewModel 属性。
【问题讨论】:
标签: wpf xaml string hyperlink string-formatting