【问题标题】:why button support both RoutedEvent and command?为什么按钮同时支持 RoutedEvent 和命令?
【发布时间】:2013-12-02 09:32:58
【问题描述】:

偶然看到了buttonbase.cs的参考源码:

    protected virtual void OnClick()
    {
        RoutedEventArgs newEvent = new RoutedEventArgs(ButtonBase.ClickEvent, this); 
        RaiseEvent(newEvent);

        MS.Internal.Commands.CommandHelpers.ExecuteCommandSource(this); 
    }

我知道第一个 roundedevent 是我在“属性”窗口中生成事件处理程序时,第二个是我在 xaml 中添加的命令绑定。

我很好奇为什么按钮支持这两种机制。 我可以说第一个是为了向后兼容而第二个是在 MVVM 世界中推荐的吗?

【问题讨论】:

    标签: c# wpf mvvm binding


    【解决方案1】:

    我不会将其称为向后兼容性,因为两者都是在 .NET 3.0 中引入的。对于 MVVM 中的大多数用例,命令更好,但你不能说没有路由事件的用例。甚至在某些情况下,您可能想要使用路由命令。由编码人员决定哪个最合适。

    我可以推荐this article吗?

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 1970-01-01
      • 2018-11-12
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多