[Thư viện WPF] Lớp RelayCommand sử dụng trong mô hình MVVM

public class RelayCommand<T> : ICommand
    {

        private readonly Predicate<T> _canExcute; // Lưu trữ điều kiện để thực hiện command- Thực hiện hàm ủy thác
        private readonly Action<T> _execute; // Lưu trữ hàm ủy thác làm việc gì đó
     
    

        // Khi khởi tạo thì truyền điều kiện ủy thác và hàm ủy thác
        public RelayCommand(Predicate<T> canExecute, Action<T> execute)
        {
            if (execute == null)
                throw new ArgumentNullException("excute null");
            _canExcute = canExecute;
            _execute = execute;
        }


        //Điều kiện để chạy command

        public bool CanExecute(object parameter)
        {
            return _canExcute == null ? true : _canExcute((T)parameter);
        }
        //Hàm ủy thác khi gọi command
        public void Execute(object parameter)
        {
            _execute((T)parameter);
        }

        public event EventHandler CanExecuteChanged
        {
            //Thêm bớt vào cái manager
            add { CommandManager.RequerySuggested += value; }
            remove { CommandManager.RequerySuggested -= value; }
        }



    }
[Thư viện WPF] Lớp RelayCommand sử dụng trong mô hình MVVM [Thư viện WPF] Lớp RelayCommand sử dụng trong mô hình MVVM Reviewed by Nguyen Nam on 8/13/2017 Rating: 5

Không có nhận xét nào:

Được tạo bởi Blogger.