액세스 제어 우리가 얻을 수있는 많은 방법이 있습니다.
이 프로젝트는 우리가 모든 버튼이 트리거 판단하기 전에, 당신이 수행 할 수있는 권한을 가질 수있는 간단한 액세스 제어 할 수 있습니다.
우리는 사용자 정의 클래스를 주문하십시오.
공공 클래스 DelegateCommand : ICommand의 { 액션 _action; FUNC < BOOL > _canAction; 문자열 _Role; 공개 DelegateCommand (조 작용, 문자열 역할 = 널 ) { _Role = 역할; _action = 액션; } 공개 DelegateCommand (조 작용, Func을 < BOOL > canAction, 문자열 역할 = 널 ) { _Role =역할; _action = 액션; _canAction = canAction; } 공개 부울 CanExecute ( 오브젝트 파라미터) { 경우 (_canAction == 널 ) { 반환 참 ; } 리턴 )를 _canAction.Invoke (; } 공공 이벤트 핸들러는 CanExecuteChanged { 추가 { CommandManager.RequerySuggested + = 값; } 풀다 { CommandManager.RequerySuggested - = 값; } } 공개 보이드는 (실행 오브젝트 파라미터) { 경우 (_action! = null의 ) { 경우 (_Role! = null의 ) { 경우 (System.Windows.MessageBox.Show ( " 此权限为" + _Role, "" , System.Windows을 .MessageBoxButton.OKCancel)! = System.Windows.MessageBoxResult.OK) { 반환 ; } } _action.Invoke (); } }
실행]에서 권한을 확인
명령을 들어오는 때 권리는이 버튼 객체를
AbnormalCommand = 새로운 DelegateCommand < 문자열 > ((p) => Messenger.Default.Send < 문자열 > (p, " HomeNavgation " ), " 비정상 버튼 역할 " );