Как привязать модель представления caliburn.micro к элементу управления WP8 LongListSelector?

Есть ли способ автоматически привязать модель представления Caliburn.Micro к элементу управления Windows Phone 8 LongListSelector и автоматически связать свойство SelectedItem?


person Michael Teper    schedule 28.07.2013    source источник


Ответы (1)


Если я правильно понимаю ваш вопрос, то вы хотите, чтобы обычные соглашения Caliburn.Micro применялись к LongListSelector.

Я не работаю с разработкой для Windows Phone, но думаю, что это можно сделать, вызвав следующую строку кода в методе Configure() загрузчика.

ConventionManager.AddElementConvention<LongListSelector>(LongListSelector.ItemsSourceProperty, "SelectedItem", "SelectionChanged");

Этот код указывает Caliburn.Micro использовать свойство ItemsSource всякий раз, когда он находит именованный (например, x:Name="myList") LongListSelector, и использовать SelectedItem всякий раз, когда элемент LongListSelector передается в списке параметров. сообщения о действии, и, наконец, он использует событие SelectionChanged для запуска сообщений о действии по умолчанию.

person Ibrahim Najjar    schedule 28.07.2013
comment
Список привязывается, но SelectedItem не выполняется? - person Dennis van der Stelt; 26.08.2013
comment
@DennisvanderStelt Что вы подразумеваете под SelectedItem isn't executed ? If you mean it is not bound then you are correct because the SelectedItem`, это не свойство зависимости, поэтому вы не можете применить к нему привязку. Что вы можете сделать, так это прикрепить обработчик сообщений к LongListSelector и использовать этот обработчик для вызова метода в модели представления списка, чтобы уведомить его об изменении SelectedItem. - person Ibrahim Najjar; 26.08.2013
comment
Это получает часть пути там. Кажется, что он не заботится об автоматическом использовании пользовательского элемента управления для отображаемых элементов, где он автоматически используется для ListBox. - person Gordon; 12.04.2014