2013-10-04 79 views
1

我拿用戶的化身URL從Web服務(User.Avatar):綁定的StringFormat和轉換器一起

/users/user_id/12?last_update=timestamp 

在不同的控制,我必須使用不同大小的頭像(Web服務可以裁剪和調整圖像):

ImageSource="{Binding User.Avatar, StringFormat=http://myurl.com/\{0\}/crop/110x110, Converter={StaticResource ImageSizeUrlConverter}}"/> 

轉換器必須採取

http://myurl.com/users/user_id/12?last_update=timestamp/crop/110x110(與StringFormat

,並返回

http://myurl.com/users/user_id/12/crop/110x110?last_update=timestamp 

但轉換採取/users/user_id/12?last_update=timestamp(不StringFormat)。

這是正常的行爲?

+0

請更清楚地解釋你的問題。 – Sheridan

+1

對不起Sheridan,我試圖做不可能的事情,請檢查Toni Petrina的答案 – Alexandr

回答

4

嗯,它應該是這樣。您可以將任何值綁定到字符串依賴項屬性。轉換器用於將類型轉換爲目標類型。由於字符串格式僅適用於字符串,因此在轉換器之前進行操作是沒有意義的,只能在後面加字。

下面是一個例子:

{Binding SomeBoolValue, 
     StringFormat=You said \{0\}, 
     Converter={StaticResource BoolToString}} 

BoolToString回報「是」 true和「否false 格式化你轉換的源類型爲目標類型後,必須發生

您可以將數據作爲ConverterParameter發送,但不能綁定到靜態屬性。最好的解決方案是在綁定和轉換時創建一個附屬屬性。