有沒有簡單的方法來轉換或格式化字符串作爲WPF數據綁定的一部分?在XAML屬性數據綁定期間,您可以StringFormat超鏈接的NavigateUri屬性嗎?
假設我想創建一個基於字符串標記的WPF超鏈接元素。
<Hyperlink NavigateUri="{Binding Tag}">
<Run Text="{Binding Tag}" />
</Hyperlink>
但我需要先轉換標籤的NavigateUri屬性,使之成爲真正的超鏈接或PackUri。
舉例來說,如果我的標籤是「分衆分類」我要創建這樣一個字符串:http://www.example.com/tags/tagview?tag=folksonomy
什麼是實現這一目標的最佳方式是什麼? XAML中有字符串操作函數嗎?我必須寫一個轉換器嗎?我是否必須構建一個完全獨立的ViewModel類才能進行小字符串格式化?
更新:似乎有一些奇怪的事情與超鏈接元素。我可以得到在爲普通TextBlock的Text屬性工作的答案中建議的StringFormat語法,但不能用於超鏈接的NavigateUri屬性。
作爲一個答案指出,這可能是由於NavigateUri屬性正式接受Uri而不是字符串。顯然自定義轉換器或ViewModel屬性將是必需的。
嗯。我可以讓它適用於TextBlock元素的Text屬性,但不適用於Hyperlink的NavigateUri或Tooltip屬性。 – dthrasher 2010-08-26 23:50:12
有趣。可能是因爲目標類型是'Uri'而不是'String'。您可能需要訴諸自己的轉換器,或者視圖模型上的單獨屬性。 – 2010-08-27 06:52:11
這對NavigateUri方法有意義,但有趣的是Tooltip不會採用StringFormat。看起來好像StringFormat完全沒有實現。也許是因爲Hyperlink存在於System.Windows.Documents命名空間中? – dthrasher 2010-08-27 15:22:33