2011-01-13 3 views
0

私のViewModelのCanvasオブジェクトを、私のViewのCanvasオブジェクトにマップしようとしています。Caliburnは、そのオブジェクトのViewModelインスタンスをViewインスタンスにマップするために、指定されたオブジェクトの要素規則を必要としますか?

しかし、実行すると「CompositionExceptionがユーザーコードによって未処理です」というエラーが表示されます。 ViewModelのCanvasオブジェクトをコメントアウトするとエラーが回避されるため、Caliburnがマップしてエラーを発生させようとしていると推測しています。

+0

は、あなたが投稿できるコードサンプルを持っていますか?これは、あなたのviewmodel上のSystem.Windows.Controls.Canvasの実際のインスタンスですか? (それは私には意味がありませんが、それは私がそれをどのように読んでいるかです)。 CompositionExceptionはMEFからです。そこには詳しい説明があると思います。 MEFのエラーは通常冗長です。 –

答えて

0

ViewModelのCanvasオブジェクトが、ビュー内のCanvasオブジェクトに変換されますか?

私はキャリバーンがそうするつもりはないと思います。 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/> 

何このコードはないですが、モデルのプロパティ「のItemsSourceまでのListBoxの "SelectedItemの" プロパティまでSelectedModelリンク"CheckedChangeイベントのプロパティとワイヤを使用して、ユーザーがクリックするとSelectedItemが変更されるようにします。カリバーンに大きなドキュメントのセクションがあります

、それは彼の例を経由するだけでなく価値がある:Caliburn Micro Docs

関連する問題