Prism 行为 - 将 EventToCommandBehavior 与按钮一起使用

Prism Behaviors - Using EventToCommandBehavior with a Button

我正在尝试使用 Prism 调用在我的 ViewModel 中设置的方法。我将我的 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 并不是一个真正的 Button,它是一个 FloatingActionButton,它继承了从 SuavePirate 的存储库下载的 Button class: https://github.com/SuavePirate/Xamarin.Forms.Controls.FloatingActionButton

我尝试将我的行为与 classic 按钮以及 Command 属性一起使用,但两者都不起作用。
有人可以解释一下问题出在哪里吗?

感谢您的帮助! :)

好吧,我发现我的错误在哪里:
Button 试图让我的命令出错 class,因为我的 Button 在 ListView 中,而这个 ListView 改变了 Button 的绑定上下文。所以我必须手动设置 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}"/>

感谢您的帮助!