C# uwp中的RoutedCommand替换

C# uwp中的RoutedCommand替换,c#,xaml,win-universal-app,C#,Xaml,Win Universal App,我需要在自定义控件中创建RoutedCommand。我在wpf中使用了RoutedCommand,但在uwp中没有RoutedCommand类。这个的替代品是什么 [编辑]RoutedCommand支持的整个CommandBinding似乎都在uwp中消失了!因为也不存在由FrameworkElement实现的IIInputElement 答案可能是RelayCommand,它也实现了ICommand public class RelayCommand : ICommand { priv

我需要在自定义控件中创建RoutedCommand。我在wpf中使用了RoutedCommand,但在uwp中没有RoutedCommand类。这个的替代品是什么

[编辑]RoutedCommand支持的整个CommandBinding似乎都在uwp中消失了!因为也不存在由FrameworkElement实现的IIInputElement
答案可能是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();
    }
}
公共类RelayCommand:ICommand
{
私人行动;
公共RelayCommand(操作处理程序)
{
_handler=handler;
}
public RelayCommand(操作处理程序,Func p):此(处理程序)
{
这个,p=p;
}
私人住宅已启用;
私人职能;
公共场所被禁止
{
获取{return}
设置
{
如果(值!=\u已启用)
{
_isEnabled=值;
如果(CanExecuteChanged!=null)
{
CanExecuteChanged(此为EventArgs.Empty);
}
}
}
}
公共布尔CanExecute(对象参数)
{
//返回被禁止;
返回true;
}
公共事件处理程序CanExecuteChanged;
public void Execute(对象参数)
{
_handler();
}
}

这只是
ICommand
的一个简单实现。作者询问了关于
RoutedCommand
,它在可视化树中传播。