Hallo zusammen
Für ein neues Projekt habe ich caliburn.micro gewählt, und stecke nun beim DataBinding mit dem ListPicker fest. Wenn ich statt des ListPickers eine normale DropDown nehme, funktioniert das Binding wie es soll. Also es werden alle Elemente angezeigt und bei einer Auswahl wird das SelectedItem Property korrekt gesetzt.
Im Quellcode des Frameworks habe ich folgenden Eintrag gefunden:
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;
};
Da der ListPicker aber nicht von Selector erbt, funktioniert dies nicht. Daher habe ich meinem Bootstrapper eine CustomConvention hinzugefügt:
static void AddCustomConventions() {
AddElementConvention<ListPicker>(ListPicker.ItemsSourceProperty, "SelectedItem", "SelectionChanged")
.ApplyBinding = (viewModelType, path, property, element, convention) => {
ConventionManager.ConfigureSelectedItem(element,
ListPicker.SelectedItemProperty,viewModelType, path);
return true;
};
}
Leider funktioniert das so nicht, es werden in der Liste keine Einträge angezeigt.
btw: ich habe die gleiche Frage noch auf StackOverflow gestellt.
Bin froh um jeden Hinweis!
LG Michael
Wegen [Hinweis] Wie poste ich richtig? Punkt 2.2 ==> geschlossen