Disable Command Source via Dispatcher Timer 샘플
업데이트: 2007년 11월
이 샘플에서는 DispatcherTimer를 통해 명령 소스를 활성화하거나 비활성화하는 방법을 보여 줍니다.
MenuItem 클래스 및 Button 클래스와 같은 명령 소스는 현재 명령 대상에서 명령을 실행할 수 있는지 여부를 확인하는 명령을 쿼리해야 할 경우를 확인하기 위해 해당 명령 소스가 연결된 RoutedCommand의 CanExecuteChanged 이벤트를 수신합니다. 일반적으로 명령 소스는 명령을 실행할 수 없으면 비활성화되고 명령을 실행할 수 있으면 활성화됩니다. 예를 들어 명령을 실행할 수 없으면 MenuItem이 회색으로 표시됩니다.
CommandManager는 명령 대상과 함께 조건이 변경되었음을 RequerySuggested 이벤트를 통해 RoutedCommand에게 알립니다. RoutedCommand는 명령 소스가 수신하는 CanExecuteChanged 이벤트를 발생시킵니다. 일반적으로 이 알림 메커니즘이 적합하지만 CommandManager가 명령 대상에서 조건이 변경되었음을 알지 못하여 RequerySuggested 이벤트가 발생되지 않고 명령 소스가 RoutedCommand를 쿼리하지 않는 경우도 있습니다. 이 경우 CommandManager는 InvalidateRequerySuggested를 호출하여 RequerySuggested 이벤트를 발생시킬 수 있습니다.
이 샘플에서는 현재 시간(초)이 대상 값보다 큰 경우에만 실행될 수 있는 RoutedCommand를 만듭니다. 1초 마다 InvalidateRequerySuggested를 호출하는 DispatcherTimer가 생성됩니다. 따라서 명령 소스가 CanExecuteChanged 이벤트를 받아 명령에서 CanExecute 메서드를 호출할 수 있습니다.
이 샘플의 다른 변형을 보려면 Disable Command Source via System Timer 샘플 샘플을 참조하십시오. 명령에 대한 자세한 내용은 명령 개요를 참조하십시오.
이 샘플에서는 Windows Presentation Foundation의 특정 기능에 대해 설명하므로 최선의 응용 프로그램 개발 방법을 따르지 않습니다. WPF(Windows Presentation Foundation) 및 Microsoft .NET Framework 응용 프로그램 개발을 위한 최선의 방법에 대한 자세한 내용은 다음에서 적절한 항목을 참조하십시오.
내게 필요한 옵션 - 액세스 가능성에 대한 유용한 정보
보안 - Windows Presentation Foundation 보안
지역화 - WPF 전역화 및 지역화 개요
샘플 빌드
Windows SDK(소프트웨어 개발 키트)를 설치하고 빌드 환경 명령 창을 엽니다. 시작 메뉴에서 모든 프로그램, Microsoft Windows SDK를 차례로 가리킨 다음 CMD 셸을 클릭합니다.
SDK(소프트웨어 개발 키트) 설명서 등에서 샘플을 하드 디스크 드라이브로 다운로드합니다.
빌드 환경 명령 창에서 샘플을 빌드하려면 샘플의 소스 디렉터리로 이동합니다. 명령 프롬프트에 MSBUILD를 입력합니다.
Microsoft Visual Studio에서 샘플을 빌드하려면 샘플 솔루션이나 프로젝트 파일을 로드한 다음 Ctrl+Shift+B를 누릅니다.
샘플 실행
빌드 환경 명령 창에서 컴파일된 샘플을 실행하려면 샘플 소스 코드 폴더 아래에 있는 Bin\Debug 또는 Bin\Release 폴더의 .exe 파일을 실행합니다.
Visual Studio에서 디버깅 기능을 사용하여 컴파일된 샘플을 실행하려면 F5 키를 누릅니다.
참고 항목
작업
Disable Command Source via System Timer 샘플