WPF - 如何以编程方式将对象物化为视觉内容?
当您将对象分配给内容控件时,它将具体化适合该分配对象的视觉效果。是否有一种编程方式可以达到相同的结果?我想使用对象调用 WPF 中的函数并返回 Visual,其中应用相同的逻辑来生成 Visual,就好像您已将对象提供给 Content 控件实例一样。
例如,如果我有一个 POCO 对象并将其分配给内容控件,并且恰好定义了适当的 DataTemplate,那么它会具体化该模板以创建视觉对象。我希望我的代码能够获取 POCO 对象并从 WPF 返回 Visual。
有什么想法吗?
When you assign an object to a Content control it will materialize a Visual appropriate for that assigned object. Is there a programmatic way to achieve the same result? I would like to call a function in WPF with an object and get back a Visual, where the same logic is applied in generating the Visual as if you had supplied the object to a Content control instance.
For example, if I have a POCO object and assign it to a Content control and there happens to be an appropriate DataTemplate defined then it materializes that template to create the Visual. I would like my code to be able to take a POCO object and get back from WPF the Visual.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 DataTemplate.LoadContent()。示例:
http://msdn.microsoft.com/en-us/library/ system.windows.frameworktemplate.loadcontent.aspx
如果您为某个类型的所有实例定义了 DataTemplate(DataType={x:Type ...},但没有 x:Key="..."),则您可以使用适当的方式创建内容DataTemplate 使用以下静态方法。如果未找到 DataTemplate,此方法还会通过返回 TextBlock 来模拟 ContentControl。
Use DataTemplate.LoadContent(). Example:
http://msdn.microsoft.com/en-us/library/system.windows.frameworktemplate.loadcontent.aspx
If you have a DataTemplate defined for all instances of a type (DataType={x:Type ...}, but no x:Key="...") then you can create content using the appropriate DataTemplate using the following static method. This method also emulates ContentControl by returning a TextBlock if no DataTemplate is found.