2011-01-13 5 views
0

Я пытаюсь сопоставить объект Canvas в моей модели ViewModel с объектом Canvas в моем представлении.Требует ли Caliburn конвенции элемента для данного объекта для сопоставления экземпляра ViewModel с экземпляром View?

Однако при запуске я получаю сообщение об ошибке «CompositionException was unhandled by user code». Комментирование моего объекта Canvas в ViewModel предотвращает ошибку, поэтому я предполагаю, что Caliburn пытается сопоставить его и повысить ошибку.

+0

У вас есть пример кода, вы можете разместить? Является ли это фактическим экземпляром System.Windows.Controls.Canvas на вашей модели просмотра? (Это не имеет смысла для меня, но именно так я его читаю.) CompositionException из MEF. Я ожидаю, что там будет подробное объяснение. Ошибки MEF обычно многословны. –

ответ

0

Объект Canvas в вашем представленииModel для объекта Canvas в вашем представлении?

Я не думаю, что Caliburn это сделает. Caliburn ожидает, что вы наберете свои свойства/методы для управления на странице.

Итак: ViewModel

public MyModel Models 
{ 
    get{return _values;} 
    set{ 
     _value=values; 
     RaisePropertyChangedImmediately("Models"); 
     } 
} 

public MyModel SelectedModel 
{ 
    get{return _value;} 
    set{ 
     _value=value; 
     RaisePropertyChangedImmediately("SelectedModel"); 
     } 
} 

Вид:

<ListBox x:Name="Models/> 

Что делает этот код является связывает SelectedModel до собственности "SelectedItem" в ListBox, свойство модели до «ItemsSource «свойство и провода в событии CheckedChange, так что SelectedItem изменяется, когда пользователь нажимает на него.

Там есть большой раздел документации в Caliburn, это хорошо стоит идти через его примеры: Caliburn Micro Docs