Xamarin EventHandlerBehavior与EventToCommandBehavior

Xamarin EventHandlerBehavior与EventToCommandBehavior,xamarin,xamarin.forms,Xamarin,Xamarin.forms,在Xamarin表单中,EventHandlerBehavior和EventToCommandBehavior之间有什么区别?我已经成功地使用了前者,但有人建议我改用后者。EventToCommandBehavior不那么冗长,这是一件好事 在Xamarin表单中,EventHandlerBehavior和EventToCommandBehavior之间有什么区别 事件处理程序类: ContextChanged、OnSelectedIndexChanged等在XAML的C#代码文件后面定义。这些

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

在Xamarin表单中,EventHandlerBehavior和EventToCommandBehavior之间有什么区别

事件处理程序类: ContextChanged、OnSelectedIndexChanged等在XAML的C#代码文件后面定义。这些方法完全绑定到您在页面/控件后面定义的控件

然而,Xamarin中的行为允许我们将它们附加到任何视图。您的行为将知道它所附加到的控件。因此,对于像OnTextChanged/OnSelectedIndexChanged这样的事件,可以从行为控制

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

记住如果你使用事件;您是在代码库后面编写它们,而不是在ViewModel后面编写。您的逻辑位于两个不同的位置。如果您想正确地将逻辑与视图和模型分开,那么必须使用EventToCommandBehavior

如果你需要更多信息,请告诉我

在Xamarin表单中,EventHandlerBehavior和EventToCommandBehavior之间有什么区别

事件处理程序类: ContextChanged、OnSelectedIndexChanged等在XAML的C#代码文件后面定义。这些方法完全绑定到您在页面/控件后面定义的控件

然而,Xamarin中的行为允许我们将它们附加到任何视图。您的行为将知道它所附加到的控件。因此,对于像OnTextChanged/OnSelectedIndexChanged这样的事件,可以从行为控制

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

记住如果你使用事件;您是在代码库后面编写它们,而不是在ViewModel后面编写。您的逻辑位于两个不同的位置。如果您想正确地将逻辑与视图和模型分开,那么必须使用EventToCommandBehavior


如果你需要更多信息,请告诉我

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

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

对于EventToCommandBehavior,EventToCommandBehavior是一个自定义类,需要先创建从BehaviorBase类派生的EventToCommandBehavior类,然后实现可绑定属性,有关详细信息,您可以查看:


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

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

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

对于EventToCommandBehavior,EventToCommandBehavior是一个自定义类,需要先创建从BehaviorBase类派生的EventToCommandBehavior类,然后实现可绑定属性,有关详细信息,您可以查看:


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

谢谢。我真的明白什么是行为。我只是问这两者有什么区别。此外,我还更新了我的问题,删除了我的额外问题(我现在已经过了那个问题)。它们似乎都完成了相同的任务,但EventToCommand更简洁(不太冗长)。它们之间的主要区别是事件处理程序不可绑定,但EventToCommand使它们可绑定。在代码库后面编写的事件,在ViewModel中编写逻辑(命令)的命令事件!谢谢我真的明白什么是行为。我只是问这两者有什么区别。此外,我还更新了我的问题,删除了我的额外问题(我现在已经过了那个问题)。它们似乎都完成了相同的任务,但EventToCommand更简洁(不太冗长)。它们之间的主要区别是事件处理程序不可绑定,而是更简单