【问题标题】:RoutedCommand replacement in uwpuwp 中的 RoutedCommand 替换
【发布时间】:2016-02-23 11:22:26
【问题描述】:

我需要在我的客户控件中创建一个 RoutedCommand。我在 wpf 中使用过 RoutedCommands,但在 uwp 中没有 RoutedCommand 类。这个用什么代替?

[编辑] RoutedCommand 支持的整个 CommandBinding 似乎在 uwp 中消失了!由于也不存在由 FrameworkElement 实现的 IInputElement https://msdn.microsoft.com/en-us/library/ms752070(v=vs.100).aspx

【问题讨论】:

    标签: c# xaml win-universal-app


    【解决方案1】:

    答案可能是 RelayCommand,它也实现了 ICommand

    public class RelayCommand : ICommand
    {
        private Action _handler;
    
        public RelayCommand(Action handler)
        {
            _handler = handler;
        }
    
        public RelayCommand(Action handler, Func<bool> p) : this(handler)
        {
            this.p = p;
        }
    
        private bool _isEnabled;
        private Func<bool> p;
    
        public bool IsEnabled
        {
            get { return _isEnabled; }
            set
            {
                if (value != _isEnabled)
                {
                    _isEnabled = value;
                    if (CanExecuteChanged != null)
                    {
                        CanExecuteChanged(this, EventArgs.Empty);
                    }
                }
            }
        }
    
        public bool CanExecute(object parameter)
        {
            //return IsEnabled;
            return true;
        }
    
        public event EventHandler CanExecuteChanged;
    
        public void Execute(object parameter)
        {
            _handler();
        }
    }
    

    【讨论】:

    • 这只是ICommand 的简单实现。作者询问RoutedCommand,它穿越了视觉树。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    相关资源
    最近更新 更多