2011-01-13 15 views
0

Ich versuche, ein Canvas-Objekt in meinem ViewModel einem Canvas-Objekt in meiner Ansicht zuzuordnen.Erfordert Caliburn eine Elementkonvention für ein bestimmtes Objekt, um eine ViewModel-Instanz davon einer View-Instanz zuzuordnen?

Allerdings bekomme ich eine "CompositionException wurde von Benutzercode nicht behandelt" Fehler, wenn ich laufe. Das Ausschließen meines Canvas-Objekts im ViewModel verhindert den Fehler. Daher vermute ich, dass Caliburn versucht, es zuzuordnen und den Fehler zu erhöhen.

+0

Haben Sie ein Codebeispiel haben Sie Beiträge verfassen können? Ist das eine tatsächliche Instanz von System.Windows.Controls.Canvas in Ihrem Ansichtsmodell? (Das macht keinen Sinn für mich, aber so lese ich es.) CompositionException stammt von MEF. Ich würde erwarten, dass dort eine detaillierte Erklärung vergraben ist. MEF-Fehler sind normalerweise ausführlich. –

Antwort

0

Ein Canvas-Objekt in Ihrem ViewModel für ein Canvas-Objekt in Ihrer Ansicht?

Ich glaube nicht, dass Caliburn das tun wird. Caliburn erwartet, dass Sie Ihre Eigenschaften/Methoden den Steuerelementen auf der Seite zuordnen.

So: Ansichtsmodell

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

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

Ausblick:

<ListBox x:Name="Models/> 

dieser Code Was tut, ist verknüpft die SelectedModel bis zur "SelectedItem" Eigenschaft der List-Box, die Model Eigentum bis zum „Itemssource "Eigenschaft und Drähte im CheckedChange-Ereignis, sodass das SelectedItem geändert wird, wenn der Benutzer darauf klickt.

Es gibt eine große Dokumentation Abschnitt in Caliburn, es lohnt sich durch seine Beispiele gehen: Caliburn Micro Docs