Я пытаюсь использовать текстовое поле поиска (которое я сделал, следуя этому руководству: http://davidowens.wordpress.com/2009/02/18/wpf-search-text-box/).
Я использую MVVM и WPF. Приведенный выше пользовательский элемент управления работает, когда вы пишете событие «Поиск» в файле кода программной части представления, но я не могу заставить его работать с командой (используя ViewModel).
(Событие поиска срабатывает, когда вы ничего не вводите в течение примерно 2 секунд.)
Я пытался использовать Caliburn, поэтому он может «сопоставить» событие представления с методом модели представления. Однако при возникновении события происходит сбой приложения: «Цель для метода SearchText() не найдена». в методе RaiseSearchEvent из пользовательского элемента управления.
См. следующее тестовое приложение: Тестовое приложение.
Может ли кто-нибудь сказать мне, что я делаю неправильно? Я сказал CaliBurn сделать следующее:
<i:Interaction.Triggers>
<i:EventTrigger EventName="Search">
<cal:ActionMessage MethodName="SearchText()" />
</i:EventTrigger>
</i:Interaction.Triggers>
Так что я считаю, что это правильно. Это означает, что когда срабатывает событие «Поиск», caliburn будет искать метод SearchText в ViewModel. Однако этого не происходит, и это приводит к сбою и сгоранию моего приложения.
Ты знаешь почему? Или как я мог решить эту проблему (не обязательно с Caliburn). Я уже пытался добавить «Расширение поддержки команд» (http://msdn.microsoft.com/en-us/library/dd458928.aspx), но для меня это слишком сложно :/
Спасибо за любую помощь!!