微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何以编程方式检索用于UI层次结构中特定元素的DataTemplate?

我们需要在代码中确定在给定特定数据类型和元素的情况下,将自动应用于绑定元素的模板.

我们不是在寻找一个DataTemplateSelector,因为它用于告诉UI基于自定义逻辑的给定对象使用哪个模板.相反,我们询问用户界面将使用哪个模板用于给定的数据类型和UI元素.

换句话说,我们正在寻找基于窗口资源部分中定义的模板应用的WPF,可以通过该窗口上的控件的资源覆盖,可以通过显式设置DataTemplate或者覆盖它来覆盖它们.直接在该元素上提供DataTemplateSelector.

此外,我们尝试了SelectTemplate的认实现,但返回null,所以我们也不能去那条路线.

测试是在UI中的任何位置询问没有数据模板或选择器的元素’你将如何显示这个值?’并希望它将返回一个DataTemplate,其中包含TextBlock的定义,text对象设置为该对象上的ToString方法,认情况下,在没有定义任何其他内容显示.

解决方法

Thomas Levesque的未经测试的解决方案对我来说并不适合,但提供了一个很好的起点.在我们的例子中,“容器”参数并不总是在可视树中,所以首先我们走向逻辑树直到找到视觉.结合MarqueIV的出色建议,可以得到一个相当简单的解决方案.

以下代码适用于我的生产.你的旅费可能会改变.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐