2010-11-18 31 views
3

J'ai ce calibre Caliburn.Micro projet que je suis en train de mettre en place et j'ai des problèmes avec les liaisons basées sur les conventions avec des vues imbriquées/viewmodels. Par exemple, disons que j'ai une vue shell, ShellView, soutenue par ShellViewModel qui est un conducteur d'écran.Caliburn.Les liaisons basées sur des conventions ne fonctionnent pas dans les vues imbriquées?

J'ai un contrôle de contenu dans ShellView lié à ActiveItem (en utilisant la convention x: Name), et l'ActiveItem est de type EmployeeListViewModel, donc la vue résultante est EmployeeListView. Dans cette vue, une EmployeeDetailsView est imbriquée dans un EmployeesDetailsViewModel qui est lié à l'élément sélectionné dans EmployeeListViewModel.

Cela fonctionne très bien, sauf que dans EmployeeDetailsView je ne peux pas lier des choses comme des zones de texte et des boutons en utilisant les conventions Caliburn. Cela fonctionne très bien:

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

, mais aucune de ces lignes fonctionnent:

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

Le texte de zone de texte contraignant est pas une grosse affaire, mais la méthode de bouton automatique hookup est l'une des choses les plus cool sur Caliburn Micro, mais il ne semble pas fonctionner dans les vues imbriquées.

Des idées?

Répondre

2

J'ai l'impression que vous lorsque vous liez le EmployeesDetailsViewModel (SelectedItem) à l'EmployeesDetailsView que vous le faites manuellement. CM ne procède pas au câblage à ce moment-là. Pouvez-vous poster le xaml et quelques cs pour la liaison SelectedItem? Avez-vous essayé

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

Et de suspendre un employé sélectionné à partir du EmployeeListViewModel?

+0

Yup c'est ce que je faisais, merci pour l'aide! –