アクセス制御、我々が達成することができます多くの方法があります。
簡単なアクセス制御するプロジェクト、我々はすべてのボタンが引き金と判断する前に、あなたが実行する権限を持つことができます。
私たちは、カスタムクラスを注文します。
パブリック クラスDelegateCommand:ICommandの { アクション_action。 Func < ブール > _canAction。 文字列_Role; 公共 DelegateCommand(アクションアクション、文字列役割= NULL ) { _Role = 役割。 _action = アクション。 } 公共 DelegateCommand(アクションのアクション、のFunc < ブール > canAction、ストリング役割= NULL ) { _Role =役割; _action = アクション。 _canAction = canAction。 } パブリック ブール CanExecute(オブジェクトパラメータ) { 場合(_canAction == NULL ) { 戻り 真。 } を返す)(_canAction.Invokeします。 } 公共の イベントのEventHandler 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 ")、" 異常なボタンの役割");