EventHandlerBehavior与EventToCommandBehavior

时间:2019-07-09 20:27:39

标签: xamarin xamarin.forms

在Xamarin Forms中,EventHandlerBehavior和EventToCommandBehavior有什么区别?我已经成功地使用了前者,但建议我改用后者。 EventToCommandBehavior不太冗长,这是一件好事。

2 个答案:

答案 0 :(得分:1)

  

在Xamarin Forms中,EventHandlerBehavior和EventToCommandBehavior有什么区别?

事件处理程序类似: 在XAML的C#代码文件的后面定义了OnTextChanged,OnSelectedIndexChanged等。这些方法与您在页面/控件后面定义的控件完全相关。

但是Xamarin中的行为使我们可以将它们附加到任何视图。您的行为将知道将其附加到哪个控件。因此,对于像OnTextChanged / OnSelectedIndexChanged这样的事件,可以从“行为”中进行控制。

EventToCommandBehaivor:我们已经知道Behavior会附加到任何视图;您必须将行为定义为这样,它将公开Commands的BINDABLE属性。 EventToCommandBehavior只是一个普通的行为控件,它支持将Command和Eventname绑定。在运行时,只要触发了控件的事件,您的行为就会执行附加的命令,从而使其对ViewModel更友好。

请记住是否使用事件;您将它们编写在代码库之后,而不是将ViewModel编写在逻辑上,而逻辑位于两个不同的位置。如果要从View和Model中正确分离逻辑,则必须使用EventToCommandBehavior。

让我知道是否需要更多信息。

答案 1 :(得分:1)

关于EventHandlerBehavior和EventToCommandBehavior之间的区别,我有一些观点,您可以看一下:

对于 EventHandlerBehavior ,您需要首先在项目中安装 Behaviors.Forms ,通过行为可以向控件添加功能,而不必对其进行子类化。而是,功能是在行为类中实现的,并附加到控件,就像它是控件本身的一部分一样。行为使您能够实现通常必须编写为代码隐藏的代码,因为行为可以直接与控件的API交互,从而可以将其简洁地附加到控件并打包以在多个应用程序中重用。

对于 EventToCommandBehavior ,EventToCommandBehavior是一个自定义类,需要首先创建从BehaviorBase类派生的EventToCommandBehavior类,然后实现Bindable Properties,有关详细信息,您可以看一下: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/behaviors/reusable/event-to-command-behavior

所以我建议您可以使用EventHandlerBehavior,因为您不需要在后面创建很多代码。

相关问题