c# – 我可以简化这段代码吗?如果是这样的话
发布时间:2020-12-15 23:28:15 所属栏目:百科 来源:网络整理
导读:我正在尝试向我的第一个MVVM程序添加多个命令. 但我在这里添加它们的方式对我来说是错误的. 我想尽量避免重复,我可以制作一种我可以轻松修改的父命令吗? internal class AddTimerBarCommand : ICommand{ public AddTimerBarCommand(MainViewModel viewModel
我正在尝试向我的第一个MVVM程序添加多个命令.
但我在这里添加它们的方式对我来说是错误的. 我想尽量避免重复,我可以制作一种我可以轻松修改的父命令吗? internal class AddTimerBarCommand : ICommand { public AddTimerBarCommand(MainViewModel viewModel) { _MainViewModel = viewModel; } private MainViewModel _MainViewModel; public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return true; } public void Execute(object parameter) { _MainViewModel.AddTimerBar(); } } internal class RmvTimerBarCommand : ICommand { public RmvTimerBarCommand(MainViewModel viewModel) { _MainViewModel = viewModel; } private MainViewModel _MainViewModel; public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return true; } public void Execute(object parameter) { _MainViewModel.RmvTimerBar(); } 解决方法
您是否在寻找基类来减少代码重复?
如果是这样,这可能适合您: internal abstract class TimerBarCommandBase : ICommand { public TimerBarCommandBase(MainViewModel viewModel) { _MainViewModel = viewModel; } protected MainViewModel _MainViewModel; public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return true; } public abstract void Execute(object parameter); } internal class AddTimerBarCommand : TimerBarCommandBase { public AddTimerBarCommand(MainViewModel viewModel) : base(viewModel) { } public override void Execute(object parameter) { _MainViewModel.AddTimerBar(); } } internal class RmvTimerBarCommand : TimerBarCommandBase { public RmvTimerBarCommand(MainViewModel viewModel) : base(viewModel) { } public override void Execute(object parameter) { _MainViewModel.RmvTimerBar(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |