Поведение Призмы - Использование EventToCommandBehavior с Кнопкой - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь вызвать метод, установленный в моей ViewModel, используя Prism.Я привязал свой EventToCommandBehavior к кнопке, но когда я нажимаю на свою кнопку, ничего не происходит.Я уже проверил свой метод, и он работает, поэтому я действительно думаю, что это проблема с моим EventToCommandBehavior.

XAML:

<controls:FloatingActionButton HeightRequest="10" WidthRequest="10" Image="ic_add.png" ButtonColor="#3BE2CA" Grid.Column="1" Margin="160,45,0,40">
    <controls:FloatingActionButton.Behaviors>
        <b:EventToCommandBehavior                         
             EventName="Clicked"
             Command="{Binding AddToLibraryCommand}"/>
    </controls:FloatingActionButton.Behaviors>
</controls:FloatingActionButton>

Метод во ViewModel:

private DelegateCommand _addToLibraryCommand;

public DelegateCommand AddToLibraryCommand =>
    _addToLibraryCommand ?? (_addToLibraryCommand = new DelegateCommand(ExecuteAddToLibraryCommand));

Да, моя кнопка на самом деле не Button, а FloatingActionButton, которая наследует класс Button, загруженный из репозитория SuavePirate: https://github.com/SuavePirate/Xamarin.Forms.Controls.FloatingActionButton

Я пытался использовать свое поведение с классической кнопкой, а также сатрибут Command , но он также не работает.
Может кто-нибудь объяснить мне, в чем проблема?

Спасибо за вашу помощь!:)

1 Ответ

0 голосов
/ 20 июня 2019

Хорошо, ребята, я нашел, где была моя ошибка:Кнопка пыталась получить мою Команду в неправильном классе, потому что моя Кнопка была в ListView, и этот ListView изменил BindingContext для Button.Поэтому мне пришлось вручную установить BindingContext для кнопки.

<controls:FloatingActionButton x:Name="FAB" HeightRequest="10" WidthRequest="10"
                                                                   ButtonColor="#3BE2CA" 
                                                                   Grid.Column="1" 
                                                                   Margin="160,45,0,40" 
                                         <!-- Added this line -->  BindingContext="{Binding Source={x:Reference BookList}, Path=BindingContext}"
                                                                   Command="{Binding AddToLibraryCommand}"/>

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...