【发布时间】:2014-08-12 08:16:57
【问题描述】:
在我的应用程序中,我使用 Caliburn.Micro 在 View 和 ViewModel 之间进行绑定。在我的一个观点中,我想使用 CrystalReportsViewer 用户控件,但我不知道该怎么做。首先我尝试这样的事情(cr 是 SAPBusinessObjects.WPF.Viewer 的别名)
<Grid>
<cr:CrystalReportsViewer x:Name="Viewer" />
</Grid>
我的 View 显示 Viewer,但是如何将此控件绑定到我的 ViewModel?我想从我的视图模型访问我的查看器以显示报告。 我使用财产,但那不起作用(并且没有意义)。 所以我的下一个想法是使用 ContentControl
<Grid>
<ContentControl x:Name="Viewer" />
</Grid>
但现在 Caliburn 搜索 ViewModel。 我总是可以使用 CodeBehind 但我不想要。也许对 caliburn.Micro 和 usercontrol 有经验的人可以提供帮助。
【问题讨论】:
-
为您的“查看器”制作一个 ViewModel + 视图,并将您的水晶报表查看器放入其中。正如你所说,caliburn 正在寻找该视图模型。
-
但是如何从datamodel访问Viewer呢?
-
创建一个 ViewModel : MyCrystalRepViewModel ... 和一个 View : MyCrystalRepView .... 而不是在主视图模型中创建一个名为“Viewer”的 MyCrystalRepViewModel ... 类型的属性并实例化它。在 MyCrystalRepView 中输入您的
<cr:CrystalReportsViewer -
让 MyCrystalRepViewModel 继承自 `Screen'
-
我知道该怎么做,但我不知道如何在我的 ViewModel 中做类似的事情
Viewer.ViewerCore.ReportSource = new MyReport();
标签: c# wpf mvvm caliburn.micro