Dreamine.MVVM.ViewModels 1.0.5
Dreamine.MVVM.ViewModels 프로젝트의 API와 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.MVVM.ViewModels.AsyncRelayCommand 클래스 참조sealed

더 자세히 ...

Dreamine.MVVM.ViewModels.AsyncRelayCommand에 대한 상속 다이어그램 :
Dreamine.MVVM.ViewModels.AsyncRelayCommand에 대한 협력 다이어그램:

Public 멤버 함수

 AsyncRelayCommand (Func< Task > execute, Func< bool >? canExecute=null)
bool CanExecute (object? parameter)
async void Execute (object? parameter)
void RaiseCanExecuteChanged ()

속성

Exception? LastException [get]

이벤트

EventHandler? CanExecuteChanged
EventHandler< Exception >? ExecutionFailed

Private 속성

readonly Func< Task > _execute
readonly? Func< bool > _canExecute
int _isExecuting
volatile ? Exception _lastException

상세한 설명

Async Relay Command 기능과 관련 상태를 캡슐화합니다.

AsyncRelayCommand.cs 파일의 17 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ AsyncRelayCommand()

Dreamine.MVVM.ViewModels.AsyncRelayCommand.AsyncRelayCommand ( Func< Task > execute,
Func< bool >? canExecute = null )
inline

지정한 설정으로 AsyncRelayCommand 클래스의 새 인스턴스를 초기화합니다.

매개변수
executeexecute에 사용할 Func<Task> 값입니다.
canExecutecan Execute에 사용할 Func<bool> 값입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

AsyncRelayCommand.cs 파일의 89 번째 라인에서 정의되었습니다.

90 {
91 _execute = execute ?? throw new ArgumentNullException(nameof(execute));
92 _canExecute = canExecute;
93 }

다음을 참조함 : _canExecute, _execute.

멤버 함수 문서화

◆ CanExecute()

bool Dreamine.MVVM.ViewModels.AsyncRelayCommand.CanExecute ( object? parameter)
inline

Can Execute 조건을 확인합니다.

매개변수
parameterparameter에 사용할 object 값입니다.
반환값
Can Execute 조건이 충족되면 true이고, 그렇지 않으면 false입니다.

AsyncRelayCommand.cs 파일의 149 번째 라인에서 정의되었습니다.

150 {
151 return Volatile.Read(ref _isExecuting) == 0 && (_canExecute?.Invoke() ?? true);
152 }

다음을 참조함 : _canExecute, _isExecuting.

◆ Execute()

async void Dreamine.MVVM.ViewModels.AsyncRelayCommand.Execute ( object? parameter)
inline

Execute 작업을 수행합니다.

매개변수
parameterparameter에 사용할 object 값입니다.

AsyncRelayCommand.cs 파일의 170 번째 라인에서 정의되었습니다.

171 {
172 // Atomically claim execution slot; bail if already executing.
173 if (Interlocked.CompareExchange(ref _isExecuting, 1, 0) != 0)
174 {
175 return;
176 }
177
178 RaiseCanExecuteChanged();
179 try
180 {
181 await _execute().ConfigureAwait(true);
182 }
183 catch (Exception ex)
184 {
185 _lastException = ex;
186
187 var handler = ExecutionFailed;
188 if (handler is not null)
189 {
190 handler.Invoke(this, ex);
191 }
192 else
193 {
194 // No subscriber — emit a diagnostic trace so the exception is visible
195 // in the Output window rather than silently disappearing.
196 Debug.WriteLine(
197 $"[AsyncRelayCommand] Unhandled exception (subscribe to ExecutionFailed to suppress this): {ex}");
198 }
199 }
200 finally
201 {
202 Interlocked.Exchange(ref _isExecuting, 0);
203 RaiseCanExecuteChanged();
204 }
205 }

다음을 참조함 : _execute, _isExecuting, _lastException, ExecutionFailed, RaiseCanExecuteChanged().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ RaiseCanExecuteChanged()

void Dreamine.MVVM.ViewModels.AsyncRelayCommand.RaiseCanExecuteChanged ( )
inline

Raise Can Execute Changed 작업을 수행합니다.

AsyncRelayCommand.cs 파일의 215 번째 라인에서 정의되었습니다.

216 {
217 CanExecuteChanged?.Invoke(this, EventArgs.Empty);
218 }

다음을 참조함 : CanExecuteChanged.

다음에 의해서 참조됨 : Execute().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _canExecute

readonly? Func<bool> Dreamine.MVVM.ViewModels.AsyncRelayCommand._canExecute
private

can Execute 값을 보관합니다.

AsyncRelayCommand.cs 파일의 36 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AsyncRelayCommand(), CanExecute().

◆ _execute

readonly Func<Task> Dreamine.MVVM.ViewModels.AsyncRelayCommand._execute
private

execute 값을 보관합니다.

AsyncRelayCommand.cs 파일의 27 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AsyncRelayCommand(), Execute().

◆ _isExecuting

int Dreamine.MVVM.ViewModels.AsyncRelayCommand._isExecuting
private

is Executing 값을 보관합니다.

AsyncRelayCommand.cs 파일의 46 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : CanExecute(), Execute().

◆ _lastException

volatile? Exception Dreamine.MVVM.ViewModels.AsyncRelayCommand._lastException
private

last Exception 값을 보관합니다.

AsyncRelayCommand.cs 파일의 55 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Execute().

속성 문서화

◆ LastException

Exception? Dreamine.MVVM.ViewModels.AsyncRelayCommand.LastException
get

Last Exception 값을 가져옵니다.

AsyncRelayCommand.cs 파일의 123 번째 라인에서 정의되었습니다.

이벤트 문서화

◆ CanExecuteChanged

EventHandler? Dreamine.MVVM.ViewModels.AsyncRelayCommand.CanExecuteChanged

Can Execute Changed 상황이 발생할 때 알립니다.

AsyncRelayCommand.cs 파일의 103 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : RaiseCanExecuteChanged().

◆ ExecutionFailed

EventHandler<Exception>? Dreamine.MVVM.ViewModels.AsyncRelayCommand.ExecutionFailed

Execution Failed 상황이 발생할 때 알립니다.

AsyncRelayCommand.cs 파일의 113 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Execute().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: