ListPicker Message.Attach ошибка в Caliburn.Micro - PullRequest
5 голосов
/ 16 мая 2011

У меня следующий код XAML на WP7:

<toolkit:ListPicker x:Name="ListPickerBwFactors" ItemsSource="{Binding BwFactors}" 
                            cal:Message.Attach="[Event SelectionChanged]=[Action ChangeBinarizeFactor(ListPickerBwFactors.ItemSelected)]">
</toolkit:ListPicker>

Я получаю ошибку: Цель должна быть FrameworkElement или CollectionViewSource

Все, что я хочу сделать, это передать моей виртуальной машине SelectedItem из ListPicker.Что я делаю не так?

1 Ответ

3 голосов
/ 17 мая 2011

Текущая версия Silverlight на WP7 основана на Silverlight 3, одно из основных ограничений которого заключалось в том, что вы можете связывать только свойства зависимостей в FrameworkElement или CollectionViewSource (в отличие от DependencyObject в WPF).*

Причина, по которой вы видите эту ошибку для этого фрагмента кода, заключается в том, что скрытое свойство зависимостей Message.Attach использует Поведения (в частности, ActionMessage), которые не являются FrameworkElements.

Caliburn пытается установить привязку из ListPickerBwFactors.ItemSelected к параметру ActionMessage и завершается неудачей.По сути, это означает, что параметры в Caliburn в настоящее время не очень популярны.Вместо этого вам нужно будет привязать SelectedItem к свойству ViewModel.

С другой стороны, версия WP7 "Mango" обновит Silverlight на телефоне до 4, где эта проблема будет решена.

...