6

在前面的提問/回答我學會了如何數據綁定使用TypeConverterAttribute在Windows手機確實TypeConversion爲stringImageSource - 看https://stackoverflow.com/a/16753488/373321如何不WindowsRT數據綁定做類型轉換,而不TypeConverterAttribute

我現在在WindowsStore應用程序中查看相同的問題,其中TypeConverterAttributedoesn't exist

如果我使用WinRT數據綁定,那麼顯然數據綁定層仍然設法進行正確的轉換。所述MSDN documentation說:

此行爲依賴於處理該字符串作爲URI底層類型轉換,並調用的BitmapImage(URI)構造的等價物。

但是,我無法看到任何關於如何知道要執行什麼轉換的元數據。

我試圖建立自己的數據綁定實現 - 所以能夠模仿WinRT做什麼將是非常有用的。

是否有可查詢的元數據提示某處告訴Xaml數據綁定要應用哪種轉換?或者是這個stringImageSource的轉換以某種方式烘焙到運行時,隱藏在CLR層?

如果它被隱藏,是否有已知的自動類型轉換的任何地方的列表,以便我可以將它們緩存在我的數據綁定實現中?

回答

0

在Windows 8應用程序中,通常通過創建一個繼承自IValueConverter的類來處理,然後將其與特定數據綁定一起分配。由於在MSDN網站上標明:

「通過實現IValueConverter接口和實現轉換方法創建一個轉換器,方法應該返回一個對象,它是同類型的依賴項屬性的約束性指標,或在至少可以隱式強制或轉換爲目標類型的類型「。

這裏是鏈接到全DOC:http://msdn.microsoft.com/en-US/library/windows/apps/windows.ui.xaml.data.binding.converter.aspx

見進一步詳細地「實施例」部分。

要回答你的問題,沒有元數據提示,你只需創建你的轉換器,然後明確地將轉換器與自定義數據綁定一起分配。

2

我通過Twitter與WinRT的開發者(蒂姆·豪雅)的人討論這個問題

這次談話的基本概括爲:

  • WinRT中沒有類似的東西TypeConverterAttribute
  • 小WinRT控件的數量確實有少量內部轉換,它們將應用
  • 沒有關於這些控件和轉換的公開信息
+1

啊,這聽起來有點令人失望。我正在研究一個用戶控件,並且缺乏這個在XAML中的使用。 – unrelativity