【问题标题】:Caliburn.Micro display external UserControlCaliburn.Micro 显示外部 UserControl
【发布时间】:2013-05-15 19:43:56
【问题描述】:

我正在尝试使用 Caliburn.Micro 创建一个新的 WPF 应用程序。我有一个视图,我想在其中显示来自未遵循 MVVM 的外部程序集的 UserControl。

我尝试在我的视图上创建一个 ContentControl,在 ViewModel 中我有一个返回外部用户控件类型的属性。

<ContentControl Name="SqlConnectLabel" Content="{Binding}" />

和

public sql.ConnectLabel SqlConnectLabel
{
  get { return p_oConnectLabel; }
  set
  {
    p_oConnectLabel = value;
    NotifyOfPropertyChange(() => SqlConnectLabel);
  }
}

当我运行我的应用程序时,ContentControl 显示“找不到 [外部用户控件的命名空间] 的视图”。

有没有办法像在视图上那样显示外部的非 MVVM 用户控件?

【问题讨论】:

  • 为什么不直接将控件放到设计图面上(或者只是为其添加 XAML)?您不需要 CM 将其绑定到 VM。这当然是如果你没有在运行时解析类型(即你在设计时有一个 ref)
  • @Charleh,这成功了。我不知道为什么我没有想尝试一下... facepalm。如果您将此添加为答案,我会接受它,因为您首先回复了该建议。谢谢!

标签: wpf caliburn.micro


【解决方案1】:

您可以将其作为标准 UserControl 添加到设计图面或 XAML(因为您不需要 CM 将其全部绑定)

显然,如果您在运行时解析视图,则需要使用不同的方法,否则,请拖放!

【讨论】:

  • 我什至从未抄袭过你的评论,我以道歉的方式对你投了赞成票。
  • 哈哈,没有问题的伙伴,无论如何,你的 +1 是我的赞成票 - 考虑解决!
【解决方案2】:

将它作为普通的 UserControl 放置是最安全的选择。一般来说,如果它不是在构建时考虑到 MVVM,那么绑定到它会很痛苦(例如缺少 INPC)。

【讨论】:

  • 感谢您抽出宝贵时间回答!我只是根据时间将 Charleh 的答案标记为正确答案,但我也给了你一个赞成票。
猜你喜欢
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 2016-05-11
相关资源
最近更新 更多