Caliburn.Micro attacchi convenzione-based non lavorare in vista nested?
-
25-09-2019 - |
Domanda
Ho questo progetto di esempio Caliburn.Micro Sto mettendo insieme e sto avendo problemi con le associazioni di convenzione-based con vista nested / ViewModel.
Per fare un esempio, diciamo che ho una visione conchiglia, ShellView, sostenuta da ShellViewModel che è un conduttore schermo.
Ho un controllo contenuto nella ShellView tenuta a ActiveItem (usando l'x: Nome convenzione), e l'ActiveItem è di tipo EmployeeListViewModel, quindi la vista risultante è EmployeeListView. Nidificato in questo punto di vista è un EmployeeDetailsView supportato da un EmployeesDetailsViewModel che è legato alla voce selezionata in EmployeeListViewModel.
Questo funziona bene, solo che in EmployeeDetailsView non riesco cose si legano come caselle di testo e pulsanti utilizzando le convenzioni Caliburn. Questo funziona bene:
<TextBox Text="{Binding EmployeeID}" />
, ma nessuna di queste linee di lavoro:
<TextBox x:Name="EmployeeID" />
<Button x:Name="ClickMethod" />
Il legame di testo casella di testo non è un grosso problema, ma il metodo pulsante di aggancio automatico è una delle funzioni più interessanti di Caliburn.Micro, ma non sembra al lavoro in vista nidificate.
Tutte le idee?
Soluzione
Ho la sensazione che quando si sono vincolanti l'EmployeesDetailsViewModel (SelectedItem) al EmployeesDetailsView che si sta facendo manualmente. CM non è wiring le cose a quel punto. Puoi pubblicare il codice XAML e alcuni cs per il legame SelectedItem? Hai provato
<MyUc:EmployeesDetailsView x:Name="SelectedEmployee" />
E appendere una SelectedEmployee fuori dal EmployeeListViewModel?