Требует ли Caliburn соглашения об элементах для данного объекта для сопоставления его экземпляра ViewModel с экземпляром View? - PullRequest
0 голосов
/ 13 января 2011

Я пытаюсь отобразить объект Canvas в моей ViewModel на объект Canvas в моем View.

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

1 Ответ

0 голосов
/ 27 сентября 2011

Объект Canvas в вашей ViewModel и объект Canvas в вашем View?

Я не думаю, что 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, свойство Models - со свойством «ItemsSource» и связывает событие CheckedChange, так что SelectedItem изменяется, когда пользователь нажимает на него .

В Caliburn есть отличный раздел документации, его примеры стоит посмотреть: Caliburn Micro Docs

...