Silverlight 4已经发布,但似乎我们再次错过了DataTemplate DataType功能,这对于MVVM支持来说非常关键。对于我的WPF应用程序,我习惯于将DataTemplates添加到Application.Resources中,并为相应的ViewModels添加DataTypes:
例如:
例如:
<DataTemplate DataType="{x:Type viewModels:myViewModel}">
<views:myView/>
</DataTemplate>
我喜欢这种方法,因为所有我的绑定的ViewModel自动显示正确的内容...当我有一些ItemSource在我的视图中绑定到一个ViewModel集合时,特别有用...例如,这将自动确保TabControl中的每个选项卡都与SomeViewModel相关联的视图。
我尝试过的一些SL 3的方法包括:
创建一个“DataTemplatePresenterContentControl”,当控件加载时自动应用Content的DataTemplate
使用TypeConverter,在控件加载时动态应用,沿着可视化树向下查找数据绑定的对象
使用样式,在控件加载时动态应用,沿着可视化树向下查找数据绑定的对象
然而,这些方法都没有以可接受的方式解决我上面提到的情况,这是非常关键的。
因此,由于Silverlight 4仍然无法从盒子外实现这一点,我很想知道是否有人已经提出了一些合理的替代方案。
谢谢。