Я пробую инфраструктуру caliburn.micro для нового проекта, но я застрял с привязкой ListPicker (из набора инструментов). Когда я изменяю элемент управления на простой DropDown, все работает как положено.
Я предполагаю, что DropDown работает правильно, потому что соглашение по умолчанию реализовано здесь :
AddElementConvention<Selector>(Selector.ItemsSourceProperty, "SelectedItem", "SelectionChanged")
.ApplyBinding = (viewModelType, path, property, element, convention) => {
if (!SetBinding(viewModelType, path, property, element, convention))
return false;
ConfigureSelectedItem(element, Selector.SelectedItemProperty,viewModelType, path);
ApplyItemTemplate((ItemsControl)element, property);
return true;
};
ListPicker не реализует Selector, поэтому я попытался добавить пользовательское соглашение в мой загрузчик:
static void AddCustomConventions() {
AddElementConvention<ListPicker>(ListPicker.ItemsSourceProperty, "SelectedItem", "SelectionChanged")
.ApplyBinding = (viewModelType, path, property, element, convention) => {
ConventionManager.ConfigureSelectedItem(element, ListPicker.SelectedItemProperty,viewModelType, path);
return true;
};
}
К сожалению, это не работает. Вы можете помочь?