在我的WPF应用程序中,我使用了几个具有特殊MarkupExtension的ContentPresenters,这些MarkupExtension需要访问ContentPresenter的ContentTemplate属性。
MarkupExtension很好地工作,只是我发现,如果ContentPresetner使用ContentTemplateSelector,它不会设置自己的ContentPresenter属性:相反,ContentPresenter和ContentTemplateSelector的结果都保存到私有变量中ContentPresenter类的一个,如此处所示:link to .Net source code for ContentPresenter。
我发现可以再次调用ContentTemplateSelector.SelectTemplate()并获取模板,或者将所选模板的字典保留在ContentTemplateSelector中,以便可以获取为每个元素生成的模板,但是有一种更好的方法为此吗?