我们需要在代码中确定给定特定数据类型和元素时,自动应用哪个模板到绑定的元素。我们不是寻找DataTemplateSelector,因为它是用于基于自定义逻辑告诉UI要使用哪个模板来渲染对象。相反,我们正在询问UI,对于给定的数据类型和UI元素,它将使用哪个模板。换句话说,我们正在寻找WPF基于窗口资源部分中定义的模板应用了什么,这些模板可以被该窗口上控件的资源所覆盖,也可以通过在该元素上直接设置DataTemplate或提供DataTemplateSelector来覆盖。此外,我们尝试了SelectTemplate的默认实现,但它返回null,所以我们无法采用这种方法。一个测试是询问一个没有在UI任何地方定义数据模板或选择器的元素:“你将如何显示这个值?”希望它会返回一个包含TextBlock的定义的DataTemplate,其中文本属性设置为该对象的ToString方法,这是在没有定义其他内容时默认显示的。