WinUi ContentDialog await를 ContentDialogButtonClickDeferral로 제어하기
WinUi의 ContentDialog는 특이하게 작동한다. 버튼 클릭 이벤트 메떠드에 await가 있으면 다이어로그를 닫고 기다린다. await가 작동하는 동안 메시지를 출력하는 등의 작업을 원칙적으로 할 수 없다.
await가 작동하는 동안 다이어로그를 사라지지 않게 하려면 ContentDialogButtonClickDeferral를 써야 한다.
async void OnContentDialogPrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
{
ContentDialogButtonClickDeferral deferral = args.GetDeferral();
await Task.Run(...);
deferral.Complete();
}