ViewModel の Canvas オブジェクトを View の Canvas オブジェクトにマップしようとしています。
ただし、実行すると「CompositionException was unhandled by user code」というエラーが表示されます。ViewModel で Canvas オブジェクトをコメントアウトするとエラーが防止されるため、Caliburn がマップしようとしてエラーが発生していると推測されます。
ViewModel の Canvas オブジェクトを View の Canvas オブジェクトにマップしようとしています。
ただし、実行すると「CompositionException was unhandled by user code」というエラーが表示されます。ViewModel で Canvas オブジェクトをコメントアウトするとエラーが防止されるため、Caliburn がマップしようとしてエラーが発生していると推測されます。
ViewModel の Canvas オブジェクトを View の Canvas オブジェクトに?
カリバーンがそうするとは思えない。Caliburn は、プロパティ/メソッドをページ上のコントロールにマップすることを期待しています。
So: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 を ListBox の "SelectedItem" プロパティにリンクし、Models プロパティを "ItemsSource" プロパティにリンクし、CheckedChange イベントに接続して、ユーザーがクリックすると SelectedItem が変更されるようにします。
Caliburn には優れたドキュメント セクションがあります。彼の例を参照する価値は十分にあります: Caliburn Micro Docs