在我的视图模型中,我有一个命令,它使用PrintDialog类的PrintVisual实现打印操作。因为我无法访问视图,所以我无法打印它。应该如何解决这个问题?
是否有更简单,更好的方法?
答案 0 :(得分:0)
我认为您的解决方案是通过一个服务类来执行打印网格的工作,显示一个对话框,以及完成工作所需的任何工作。
在MVVM中,大多数人使用依赖注入来执行此操作。您将使用相同的接口创建另一个服务,以便您的测试不会阻止执行。在这种情况下,服务是一个视图层服务,并且应该没有依赖于视图模型。 viewmodel唯一知道的是它有一个服务接口可以调用,而服务对viewmodel唯一知道的就是它为这种交互实现的接口。
我读过过去帮助过我的维基百科文章:
如果这是有道理的,请告诉我。
答案 1 :(得分:0)
这就是我解决它的方式。 我在viewmodel中创建了一个事件。每当我想要打印操作时,就在这里举起活动。
我在mainwindow.xaml中定义了我的侦听器方法(这是我定义了我的内容演示者,所有数据模板都分配给了这个contentpresenter.content) 在这个监听器方法中,我使用PrintDialog类的PrintVisual调用打印操作。
<!/ P>