locked
Win 8.1. MVVM Light. Как правильно задать EventToCommand для SearchBox? RRS feed

  • Вопрос

  • Добрый вечер.

    Подскажите как связать обработчик события QuerySubmitted объекта типа SearchBox c ViewModel.

    После того как я сделал так как в коде ниже, у меня отвалилась вся ViewModel: не биндятся данные и команды.

    Делаю это так:

    <SearchBox x:Name="searchBox" Width="250" Margin="0,20,50,0" HorizontalAlignment="Right" FocusOnKeyboardInput="True"> <Interactivity:Interaction.Behaviors> <Win8nl_Behavior:EventToBoundCommandBehavior Event="QuerySubmitted"

    Command="{Binding SearchCommand}" PassEventArgsToCommand="True"/> </Interactivity:Interaction.Behaviors> </SearchBox>

    и команда:

    public RelayCommand<SearchBoxQuerySubmittedEventArgs> SearchCommand
            {
                get
                {
                    return new RelayCommand<SearchBoxQuerySubmittedEventArgs>((e) =>
                        {
                            /*какой-то код*/
                        });
                }
            }
    Выводит такую вот ошибку:
    Первый этап обработки исключения типа "Windows.UI.Xaml.Markup.XamlParseException" в Vk.Disk.exe
    Сведения WinRT: Cannot add instance of type 'Win8nl.Behaviors.EventToBoundCommandBehavior' to a collection of type 'Microsoft.Xaml.Interactivity.BehaviorCollection'. [Line: 49 Position: 123]
    
    Подскажите как исправить ошибку что бы все заработало.
    Спасибо.

    9 декабря 2013 г. 18:28

Ответы

  • Здравствуйте.

    Попробуйте использовать эту библиотеку - http://winrttriggers.codeplex.com/

    Проверил только что лично, работает и пробрасывает аргументы события.

    Вот небольшой семпл:

    http://sdrv.ms/19xhGVO

    • Помечено в качестве ответа V.A.Zolotov 10 декабря 2013 г. 12:14
    9 декабря 2013 г. 22:30

Все ответы