在我的 WPF 应用程序中,我使用了几个带有特殊 MarkupExtension 的 ContentPresenter,需要访问 ContentPresenter 的 ContentTemplate 属性。
MarkupExtension 工作得很好,除了我刚刚发现如果 ContentPresetner 使用 ContentTemplateSelector,它不会设置自己的 ContentPresenter 属性:相反,ContentPresenter 和 ContentTemplateSelector 的结果都保存到 ContentPresenter 的私有变量类,可以在这里看到:链接到 ContentPresenter 的 .Net 源代码。
我发现我可以再次调用 ContentTemplateSelector.SelectTemplate() 并获取模板,或者在 ContentTemplateSelector 中保留所选模板的字典,以便我可以获取为每个元素生成的模板,但是有没有更好的方法来做到这一点?