2013-05-15 42 views
0

我正在尝试使用Caliburn.Micro创建一个新的WPF应用程序。我有一个视图,我想从不遵循MVVM的外部程序集显示UserControl。Caliburn.Micro显示外部用户控件

我试着在我的视图上创建一个ContentControl,并在ViewModel我有一个属性,返回外部usercontrol的类型。

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

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

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

有没有办法在View上显示外部的非MVVM UserControl?

+1

为什么不直接将控件直接放到设计图面上(或者只是为其添加XAML)?您不需要CM将其绑定到VM。这当然是,如果你在运行时没有解决这个类型(即你在设计时有一个ref) – Charleh

+0

@Charleh,这个窍门。我不知道我为什么没有想过去尝试它...... * facepalm *。如果您将此添加为答案,我会接受它,因为您首先回应了建议。谢谢! – fussmonkey

回答

2

您可以只需将其添加到设计图面或XAML作为标准用户控件(因为你不需要CM绑定这一切)

显然,如果要解决在运行时的观点,然后采用不同的方法是需要的,但除此之外,拖放!

+0

我甚至从未发表过你的评论,我已经通过道歉向你投了赞成票。 – McDonnellDean

+0

哈哈没有probs队友,你的+1无论如何是我的upvote - 认为它解决了! – Charleh

2

将它作为普通UserControl放置将是最安全的选项。一般来说,如果它不是以MVVM为基础构建的,绑定会很痛苦(比如缺少INPC)。

+1

感谢您花时间回答!我只是根据时间将Charleh's标记为正确的答案,但我也给了你一个赞成票。 – fussmonkey