我已经看到了很多示例,其中为内容控件的ContentTemplateSelector
属性分配了StaticResource
。
示例:<ContentControl Content="{Binding}" ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>
MSDN指出:
通常,当您拥有多个数据库时,您将创建一个DataTemplateSelector。 您想要提供一个用于相同类型对象的DataTemplate 您自己的逻辑来选择基于 每个数据对象的属性。
知道这一点-我的情况是我有两种类型的对象 ,其中每个对象都有可以使用的自己的一组数据模板。有什么方法可以让内容控件的ContentTemplateSelector
bind 绑定到视图模型上的ContentTemplateSelector
属性?棘手的是,数据模板是在xaml文件中定义的-我不能只为该类初始化特定ContentTemplateSelector
的新实例。
其他信息:我有一个父视图模型,其中每个子类应表示为不同类型的对象。因此,根据要切换的子类视图模型,它应使用其各自的ContentTemplateSelector
和数据模板。
我也已经将以上内容与转换器一起使用,但是我想避免这样做。理想情况下,我想拥有使该过程尽可能通用的代码。也就是说,将来无需维护转换器代码即可添加新类型的对象,而只是返回正确的DataTemplateSelector
。情况应该是,只要添加了新的子类,它就可以立即工作。