What replaces CommandManager in WinRT?

前端 未结 2 1088
眼角桃花
眼角桃花 2021-02-05 07:17

I\'m getting started with Metro style applications (I know we\'re not supposed to call it Metro, but I can never remember what it\'s supposed to be called...), and I\'m implemen

相关标签:
2条回答
  • 2021-02-05 07:56

    In WinRT, you must update/raise CanExecuteChanged manually. There is no CommandManager to do this globally. You could look at this as a pain in the neck, or a serious performance boost now that CanExecute is not called constantly. It does mean you have to think about cascading property changes where before you did not have to. But this is how it is. Manual.

    public void RaiseCanExecuteChanged()
    {
        if (CanExecuteChanged != null)
            CanExecuteChanged(this, EventArgs.Empty);
    }
    
    0 讨论(0)
  • 2021-02-05 08:03

    With WPF it is mandatory that you implement ICommand.CanExecuteChanged as you have described. However, for Silverlight, this is not the case. See this related question:

    WPF CommandParameter binding not updating

    My guess is that in WinRT, as in Silverlight, the CommandManager is not necessary.

    See the related discussion here:

    http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/477cdd19-ee88-4746-97fe-59b8dbd44e0a/

    0 讨论(0)
提交回复
热议问题