C#Xamarin按钮图标命令或单击事件

C#Xamarin按钮图标命令或单击事件,c#,xamarin,C#,Xamarin,我正在学习Xamarin,我找到了两个按钮选项: 命令 点击 什么时候使用更好 这些文档只提供了命令的示例,但没有解释为什么使用命令而不单击 <Button Text="Back" Command="{Binding DeleteCharCommand}" Grid.Column="1" BorderWidth="0" /> 命令界面比单击更可取,因为如果在ViewModel中注册单击处

我正在学习Xamarin,我找到了两个按钮选项:

  • 命令
  • 点击
  • 什么时候使用更好

    这些文档只提供了命令的示例,但没有解释为什么使用命令而不单击

    <Button Text="Back"
                    Command="{Binding DeleteCharCommand}"
                    Grid.Column="1"
                    BorderWidth="0" />
    

    命令界面比单击更可取,因为如果在ViewModel中注册单击处理程序,那么它将绑定并依赖于该视图,这完全违背了

    MVVM模式的整体理念是,您的视图与任何事物都是分离的(通常人们认为,当开发人员在“后端”上工作时,用户体验设计师可以在视图的布局上工作,而开发人员可以在互不干扰的情况下工作。)参见:

    因此,基本上,为控件创建Click事件被认为是一种不好的做法,但是(我个人使用XAML的经验)没有什么能真正阻止您这样做。请记住,这是一个糟糕的设计,您应该使用命令


    Xamarin文档中有一个很好的解释,命令界面比单击更可取,因为如果在ViewModel中注册单击处理程序,那么它将绑定并依赖于该视图,这与

    MVVM模式的整体理念是,您的视图与任何事物都是分离的(通常人们认为,当开发人员在“后端”上工作时,用户体验设计师可以在视图的布局上工作,而开发人员可以在互不干扰的情况下工作。)参见:

    因此,基本上,为控件创建Click事件被认为是一种不好的做法,但是(我个人使用XAML的经验)没有什么能真正阻止您这样做。请记住,这是一个糟糕的设计,您应该使用命令


    Xamarin文档中有一个很好的解释

    命令比单击事件处理程序提供了两个好处:

  • 它们不受呼叫方的约束。一个命令可以从不同的视图、类型等执行,而单击事件处理程序位于非常特定的代码隐藏文件中

  • 命令提供基于
    CanExecute
    方法启用/禁用UI的功能

  • 如果不需要
    CanExecute
    功能,可以轻松使用事件处理程序。 MVVM体系结构促进了命令的使用,因为您可以直接绑定到命令,从而防止代码隐藏

    我个人只在与“可以执行”功能相关的情况下添加命令,因为必须设置所有命令属性会添加更多的代码,而不仅仅是添加一些事件处理程序


    当使用
    x:Bind
    (又称编译绑定)时,您还可以直接绑定到方法,因此您甚至不再拥有eventhandler

    命令比单击事件处理程序提供了两个好处:

  • 它们不受呼叫方的约束。一个命令可以从不同的视图、类型等执行,而单击事件处理程序位于非常特定的代码隐藏文件中

  • 命令提供基于
    CanExecute
    方法启用/禁用UI的功能

  • 如果不需要
    CanExecute
    功能,可以轻松使用事件处理程序。 MVVM体系结构促进了命令的使用,因为您可以直接绑定到命令,从而防止代码隐藏

    我个人只在与“可以执行”功能相关的情况下添加命令,因为必须设置所有命令属性会添加更多的代码,而不仅仅是添加一些事件处理程序


    当使用
    x:Bind
    (又称编译绑定)时,您还可以直接绑定到方法,因此您甚至不再拥有eventhandler

    是否可以同时使用单击事件和命令?在我的例子中,我希望我的按钮在执行命令时显示“按下”效果。是否可能同时具有单击事件和命令?在我的例子中,我希望我的按钮在执行命令时显示“按下”效果。