在WPF中创建由不同类型的对象填充的网格(包括flash .swf对象)

时间:2012-06-22 20:25:32

标签: c# wpf visual-studio-2010 flash grid

我正在尝试在C#中创建一个WPF应用程序,该应用程序由一个包含8个单元格的网格组成,每个对象要显示给用户一个。此网格是故事板的一部分,允许用户通过一个网格轻弹到下一个网格,该网格将由另一组8个对象填充。问题是该网格将由用户计算机上的文件夹中的对象填充,并且无法知道将加载的对象的确切类型。相反,对象将是:图像,.swf视频,PDF或Word文档。

我有两个问题: 1.如何在运行时在XAML和源代码中处理网格中未知类型的对象的绑定? 2.如何处理flash对象与此单元格的绑定?

如果对象都是相同的类型(只是图像),它不会那么糟糕,但由于在程序运行之前无法知道每个单元格可能包含的内容,因此我不确定如何继续。

我已经检查了几个建议在C#WPF应用程序中嵌入flash的方法的网站,但只有在知道将加载flash对象时才会这样: http://hintdesk.com/c-wpf-play-swf-in-wpf-application/

我还想过加载Object类的对象,以避免发出对象类型http://social.msdn.microsoft.com/Forums/en/wpf/thread/ca76fc35-950c-4fac-bb30-534cb7ad1b5d的硬编码,但显然这是不可能的,因为你无法访问属性。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

可能使用转换器?您可以将其视为工厂,并为您期望的所有类型实施并且可以满足。然后,您可能还有一个默认的“不支持”视图,用于您不期望的文件类型。

答案 1 :(得分:0)

您可以在正在处理的文件夹中获取文件名,并在加载时创建ViewModel,其类型和文件路径为属性。然后,您可以向ContentControl的每个单元格添加Grid。将每个ViewModel绑定到Content的{​​{1}}并使用ContentControl来显示不同的类型。