我见过很多例子,内容控件的ContentTemplateSelector
属性被分配了一个StaticResource
.
例子:<ContentControl Content="{Binding}" ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>
MSDN 状态:
通常,当您为同一类型的对象拥有多个 DataTemplate 并且您希望提供自己的逻辑以根据每个数据对象的属性选择要应用的 DataTemplate 时,您会创建一个 DataTemplateSelector。
知道这一点 - 我的情况是我有两种类型的对象 ,其中每个对象都有自己的一组可以使用的数据模板。有什么方法可以简单地将内容控件ContentTemplateSelector
绑定到ContentTemplateSelector
视图模型上的属性?棘手的部分是数据模板是在 xaml 文件中定义的——我不能只ContentTemplateSelector
为该类初始化一个特定的新实例。
附加信息:我有一个父视图模型,其中每个子类都应表示为不同类型的 object。因此,根据切换的子类视图模型,它应该使用其各自ContentTemplateSelector
的数据模板。
我也让上面的内容与转换器一起工作,但我想远离这个。理想情况下,我希望拥有使此过程尽可能通用的代码。即不需要维护转换器代码以在将来添加新类型的对象只是为了返回正确的DataTemplateSelector
。情况应该是,只要添加了新的子类,它就会立即工作。