首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF -将VM属性绑定到UI对象的方法

WPF -将VM属性绑定到UI对象的方法
EN

Stack Overflow用户
提问于 2016-06-17 14:36:36
回答 2查看 282关注 0票数 0

这与人们通常所做的完全相反,所以我能找到的每一个信息都是关于将UI属性绑定到VM方法的。

TL;博士

MVVMVM内部的代码,这是一个常用的命令委托-through管理单击按钮的方法;我完全是-and --在这个上下文中与UI分离。这里的But...from需要调用这个VM站点绑定到的UI容器中的UI控件上的一个方法。这怎么可能呢?我是否可以通过将属性值在XML中绑定到我需要调用的方法来向VM添加一个属性?

编辑更好地解释它,

用户按下“打印”按钮。VM接收命令。所有的一切实际上都是MVVM;VM对UI一无所知。我不想打破MVVM范式。

现在,用户按下“打印”按钮,因为他想在纸上得到UI上许多用户控件的确切副本,所以我必须在每个方法上调用一个方法,这些方法给我返回它的位图显示。这些用户控件不公开"Bitmap“属性,我需要调用它们的方法。

EN

回答 2

Stack Overflow用户

发布于 2016-06-17 15:28:26

您可以创建一个名为IBitmapProvider或类似的接口。给它一个类似于GetBitmap()的方法。让您的视图继承此接口。将接口传递到视图模型的构建中。调用命令上的IBitmapProvider方法。

票数 0
EN

Stack Overflow用户

发布于 2016-06-17 18:04:24

如果没有一个更具体的问题,包括一个很好的Minimal, Complete, and Verifiable code example,可以清楚地显示您想要做什么,就不可能确切地知道什么是最好的答案。上面写着…

视图模型不是处理print命令的对象。你的观点应该是处理这个问题。使用ApplicationCommands.Print或等效,在视图中为视图中的Executed事件处理程序创建命令绑定。视图模型根本不需要知道任何关于打印的知识。

此外,您还提到使用位图,但实际上也不需要这样做。打印API允许您直接打印Visual;首先将Visual呈现为位图,然后打印位图是一种浪费,而且还会造成麻烦,试图将预期的输出分辨率与打印机的实际分辨率相匹配。

您可以直接打印实际的UI Visual对象,或者可以使用与视图使用的模板在新的ContentControl中引用现有的视图模型,或者在必要时甚至可以引用特定于打印的模板。实现这一点有多种方法;您可以在不同的问题中找到一个简单的示例in an answer I provided

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37884299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档