【问题标题】:UserControl in Caliburn.MicroCaliburn.Micro 中的用户控件
【发布时间】: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 中输入您的 &lt;cr:CrystalReportsViewer
  • 让 MyCrystalRepViewModel 继承自 `Screen'
  • 我知道该怎么做,但我不知道如何在我的 ViewModel 中做类似的事情Viewer.ViewerCore.ReportSource = new MyReport();

标签: c# wpf mvvm caliburn.micro


【解决方案1】:

我使用 Message cal:Message.Attach="[Event Loaded] = [Action LoadReport($this)]" 这就是我所需要的

【讨论】:

    猜你喜欢
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 2012-06-04
    • 2011-05-06
    • 2011-08-26
    • 2012-03-23
    • 2015-06-24
    相关资源
    最近更新 更多