2013-05-15 81 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