2010-11-18 8 views
3

Ich habe dieses Caliburn.Micro-Beispielprojekt, das ich zusammenstelle, und ich habe Probleme mit den Convention-basierten Bindungen mit verschachtelten Views/Viewmodels.Caliburn.Micro Convention-basierte Bindungen funktionieren nicht in verschachtelten Ansichten?

Als Beispiel, sagen wir, ich habe eine Shell-Ansicht, ShellView, unterstützt von ShellViewModel, die ein Bildschirmleiter ist.

Ich habe ein Content-Steuerelement in der ShellView an ActiveItem gebunden (mit der x: Name Konvention), und das ActiveItem ist vom Typ EmployeeListViewModel, so dass die resultierende Ansicht EmployeeListView ist. In dieser Ansicht ist eine EmployeeDetailsView geschachtelt, die von einem EmployeesDetailsViewModel unterstützt wird, das an das ausgewählte Element in EmployeeListViewModel gebunden ist.

Das funktioniert gut, außer dass in EmployeeDetailsView kann ich keine Objekte wie Textfelder und Schaltflächen mit den Caliburn-Konventionen binden. Dies funktioniert gut:

<TextBox Text="{Binding EmployeeID}" /> 

aber keine dieser Linien arbeiten:

<TextBox x:Name="EmployeeID" /> 
<Button x:Name="ClickMethod" /> 

Der Text Textfeld Bindung ist keine große Sache, aber die automatische Taste Methode hookup ist eines der coolsten Dinge über Caliburn .Micro, scheint aber in geschachtelten Sichten nicht zu funktionieren.

Irgendwelche Ideen?

Antwort

2

Ich habe das Gefühl, dass Sie, wenn Sie die EmployeesDetailsViewModel (SelectedItem) an die EmployeesDetailsView binden, dass Sie es manuell tun. CM verbindet die Dinge zu diesem Zeitpunkt nicht. Können Sie die XAML und einige CS für die SelectedItem-Bindung veröffentlichen? Haben Sie versucht,

<MyUc:EmployeesDetailsView x:Name="SelectedEmployee" /> 

Und ein SelectedEmployee aus dem EmployeeListViewModel hängen?

+0

Yup das war was ich tat, danke für die Hilfe! –

Verwandte Themen