2013-05-15 3 views
0

Я пытаюсь создать новое приложение WPF с помощью Caliburn.Micro. У меня есть представление, где я хочу отображать UserControl из внешней сборки, которая не соответствует MVVM.Caliburn.Micro display external UserControl

Я попытался создать ContentControl на моем представлении, а в ViewModel у меня есть свойство, которое возвращает тип внешнего пользовательского контроля.

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

и

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

Когда я запускаю мое приложение, то ContentControl отображает "Не удается найти вид на [Пространство имен внешнего UserControl]."

Есть ли способ отображения внешнего, не MVVM UserControl, как в представлении?

+1

Почему бы просто не отбросить элемент управления непосредственно на поверхность дизайна (или просто добавить XAML для него)? Вам не нужно использовать CM для привязки к виртуальной машине. Это, конечно, если вы не разрешаете тип во время выполнения (т. Е. У вас есть рефлик во время разработки) – Charleh

+0

@Charleh, это сделало трюк. Я не знаю, почему я не думал попробовать это ... * facepalm *. Если вы добавите это в качестве ответа, я соглашусь с ним, поскольку вы сначала ответили предложением. Благодаря! – fussmonkey

ответ

2

Вы можете просто добавить его к поверхности конструкции или XAML в качестве стандартного UserControl (так как вам не нужно CM, чтобы связать все это)

Очевидно, что если вы пытаетесь устранить мнение во время выполнения то другой подход необходимо, но в противном случае перетащить!

+0

Я даже не сговорился с твоим комментарием, я набросился на тебя с извинениями. – McDonnellDean

+0

Haha no probs mate, ваш +1 был моим upvote в любом случае - считают, что он улажен! – Charleh

2

Если вы выбрали его как обычный UserControl, это самый безопасный вариант. В общем случае, если он не был построен с учетом MVVM, это будет болью для привязки к (например, отсутствием INPC).

+1

Спасибо, что нашли время ответить! Я отмечаю, что Charleh является правильным ответом, основанным только на сроках, но я также дал вам свой запас. – fussmonkey

Смежные вопросы