Связи на основе конвенции Caliburn.Micro не работают во вложенных представлениях? - PullRequest
4 голосов
/ 18 ноября 2010

У меня есть пример проекта Caliburn.Micro, который я собираю, и у меня возникают проблемы с привязками на основе соглашений с вложенными представлениями / моделями представления.

В качестве примера, скажем, у меня есть представление оболочки, ShellView, при поддержке ShellViewModel, которая является проводником экрана.

У меня есть элемент управления содержимым в ShellView, связанный с ActiveItem (используя x: Соглашение об именах), и ActiveItem имеет тип EmployeeListViewModel, поэтому результирующее представление - EmployeeListView.В этом представлении вложен EmployeeDetailsView, поддерживаемый EmployeesDetailsViewModel, который привязан к выбранному элементу в EmployeeListViewModel.

Это прекрасно работает, за исключением того, что в EmployeeDetailsView я не могу связывать такие вещи, как текстовые поля и кнопки, используя соглашения Caliburn,Это прекрасно работает:

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

, но ни одна из этих строк не работает:

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

Привязка текста к текстовому полю не имеет большого значения, но автоматическое подключение метода кнопки является одним изсамые крутые вещи о Caliburn.Micro, но, похоже, он не работает во вложенных представлениях.

Есть идеи?

1 Ответ

2 голосов
/ 19 ноября 2010

У меня такое ощущение, что вы, когда вы связываете EmployeesDetailsViewModel (SelectedItem) с EmployeesDetailsView, делаете это вручную. КМ не связывает вещи в этот момент. Можете ли вы опубликовать xaml и некоторые cs для привязки SelectedItem? Вы пробовали

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

И повесить SelectedEmployee от EmployeeListViewModel?

...