如何在没有TypeConverterAttribute的情况下进行WindowsRT数据绑定的类型转换

Stu*_*art 6 data-binding typeconverter windows-runtime windows-store-apps

在上一个问题/答案中,我了解了Windows Phone中的数据绑定如何使用TypeConversion string来ImageSource使用TypeConverterAttribute- 请参阅/sf/answers/1172744191/

我现在正在查看TypeConverterAttribute 不存在的 WindowsStore应用程序中的相同问题.

如果我使用WinRT数据绑定,那么数据绑定层仍然可以设法进行正确的转换.在MSDN文档说:

此行为依赖于将字符串作为URI处理的基础类型转换,并调用BitmapImage(Uri)构造函数的等效项.

但是,我无法在任何地方看到有关它如何知道要进行转换的元数据.

我正在尝试构建自己的数据绑定实现 - 因此能够模仿WinRT的功能非常有用.

是否有可查询的元数据提示,告诉Xaml数据绑定要应用的转换?或者这string是ImageSource转换到某种程度上烘焙到运行时,从CLR层隐藏?

如果它是隐藏的,是否有已知自动类型转换的列表,以便我可以将它们缓存在我的数据绑定实现中?

pje*_*pje 0

在 Windows 8 应用程序中,这通常通过创建一个继承自 的类来处理IValueConverter,然后与特定的数据绑定一起分配。正如 msdn 站点上所述: “通过实现接口并实现 Convert 方法

来创建转换器。该方法应该返回一个与绑定目标的依赖属性类型相同的对象,或者至少是一个可以隐式强制或转换为目标类型。”IValueConverter

以下是完整文档的链接:http://msdn.microsoft.com/en-US/library/windows/apps/windows.ui.xaml.data.binding.converter.aspx

有关更多详细信息,请参阅“示例”部分。

要回答您的问题,没有元数据提示,您只需创建转换器,然后在自定义数据绑定旁边显式分配转换器。