在上一个问题/答案中,我了解了Windows Phone中的数据绑定如何使用string
对ImageSource
TypeConverterAttribute
进行TypeConversion - 请参阅https://stackoverflow.com/a/16753488/373321
我现在正在查看TypeConverterAttribute
doesn't exist的WindowsStore应用中的同一问题。
如果我使用WinRT数据绑定,那么数据绑定层仍然可以设法进行正确的转换。 MSDN documentation说:
此行为依赖于将字符串作为URI处理的基础类型转换,并调用BitmapImage(Uri)构造函数的等效项。
但是,我无法在任何地方看到有关它如何知道要进行转换的元数据。
我正在尝试构建自己的数据绑定实现 - 因此能够模仿WinRT的功能非常有用。
是否有可查询的元数据提示,告诉Xaml数据绑定要应用的转换?或者这个string
到ImageSource
转换是否以某种方式烘焙到运行时,从CLR层隐藏?
如果它是隐藏的,是否有已知自动类型转换的列表,以便我可以将它们缓存在我的数据绑定实现中?
答案 0 :(得分:2)
我通过Twitter与其中一个WinRT开发者(Tim Heuer)讨论了这个问题
此对话的基本摘要是:
TypeConverterAttribute
答案 1 :(得分:0)
在Windows 8应用程序中,通常通过创建一个继承自IValueConverter
的类来处理,然后将其与特定数据绑定一起分配。如msdn网站所述:
“通过实现IValueConverter
接口并实现Convert方法来创建转换器。该方法应返回与绑定所针对的依赖项属性相同类型的对象,或者至少可以隐式强制转换为目标类型的类型。“
以下是完整文档的链接:http://msdn.microsoft.com/en-US/library/windows/apps/windows.ui.xaml.data.binding.converter.aspx
有关详细信息,请参阅“示例”部分。
要回答您的问题,没有元数据提示,您只需创建转换器,然后明确地将转换器与自定义数据绑定一起分配。