xaml-如何指定要使用哪个ContentTemplateSelector?

时间:2019-05-21 17:35:47

标签: c# wpf xaml contentcontrol contenttemplateselector

我已经看到了很多示例,其中为内容控件的ContentTemplateSelector属性分配了StaticResource

示例:<ContentControl Content="{Binding}" ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>

MSDN指出:

  

通常,当您拥有多个数据库时,您将创建一个DataTemplateSelector。   您想要提供一个用于相同类型对象的DataTemplate   您自己的逻辑来选择基于   每个数据对象的属性。

来源:DataTemplateSelector Class

知道这一点-我的情况是我有两种类型的对象 ,其中每个对象都有可以使用的自己的一组数据模板。有什么方法可以让内容控件的ContentTemplateSelector bind 绑定到视图模型上的ContentTemplateSelector属性?棘手的是,数据模板是在xaml文件中定义的-我不能只为该类初始化特定ContentTemplateSelector的新实例。

其他信息:我有一个父视图模型,其中每个子类应表示为不同类型的对象。因此,根据要切换的子类视图模型,它应使用其各自的ContentTemplateSelector和数据模板。

我也已经将以上内容与转换器一起使用,但是我想避免这样做。理想情况下,我想拥有使该过程尽可能通用的代码。也就是说,将来无需维护转换器代码即可添加新类型的对象,而只是返回正确的DataTemplateSelector。情况应该是,只要添加了新的子类,它就可以立即工作。

0 个答案:

没有答案