여기서는 많은 작업이 없지만 귀하의 질문에 답변 해 드릴 수 있습니다. 보시다시피이 작업을 수행하는 몇 가지 간단한 방법이 있습니다.
먼저 버튼을 누르는 과정이 끝나면 버튼의 텍스트를 다시 "확인"으로 변경할 수 있습니다. 예 :
이 접근법의 문제점은 빠르고 빠르다는 것입니다. 코드를 통해 뷰 (사용자 인터페이스)를 직접 수정한다고 가정합니다. 또한 DoSomething 메서드가 뷰를 조작 할 수 있다고 가정합니다. 모범 사례는 아니지만 간단합니다.
또 다른 방법은 프로세스가 완료되었을 때 이벤트를 시작하는 것입니다. 폼 (또는 ViewModel)이 이벤트를 수신 한 다음 버튼의 텍스트 값을 다시 "Verify"로 변경할 수 있습니다. 이는 MVVM과 같은 것을 사용하고 ViewModel에서이 작업을 수행하는 경우 특히 자연에서 좀 더 우수 사례입니다. ViewModel에서 버튼의 텍스트를 가져올 수 있으므로 처음부터 마지막으로 변경할 수 있습니다.
편집 게시 한 업데이트 된 정보에서 화면을 새로 고치는 데 문제가있는 것처럼 보입니다. 이는 전체 프로세스가 완료 될 때까지 업데이트를 잠그는 동기 프로세스를 수행하고 있기 때문에 가능할 수 있습니다. 이 문제를 해결 얻을 수있는 한 가지 방법 (해킹) 여기에 나열된 지시에 따라하는 것입니다 : 나는 차라리 당신이 더 많은 스레드 친화적 인, 그러나 수 있도록이 코드를 리팩토링 볼 것이다
http://geekswithblogs.net/NewThingsILearned/archive/2008/08/25/refresh--update-wpf-controls.aspx
. 화면에 대기 표시기 (예 : "Validating ...")가 필요한만큼 프로세스가 오래 걸리는 경우 백그라운드 작업자 또는 다른 종류의 비동기 프로세스를 사용하여 실제 작업을 처리하여 UI가 잠기지 않습니다. 그러나 이것은 초보자로서 배우고 자하는 범위를 넘어서는 좀더 발전된 주제입니다. 그렇다면 지금 위 해킹을하거나 그냥 문제와 함께 살 것을 제안합니다.
당신이 전혀 아무것도 시도하고 만약 그렇다면 당신이 붙어 어디 있는지에 같은 코드를 제공 할 수 있나요 경우에? –
개인 무효 btnVerify_Click (개체 발신자, RoutedEventArgs e) { btnVerify.Content = new BitmapImage (새 Uri ("Verifying.png", UriKind.Relative)); \t \t VerifyData(); // 몇 분에서 몇 분 정도 걸립니다. \t btnVerify.Content = new BitmapImage (새 Uri ("Verified.png", UriKind.Relative)); \t} – user1222006
@ user1222006 - 다음 번에 질문에 코드를 게시하고 읽고 이해하기 쉽도록 코드 마크 업 (각 행의 시작 부분에 공백 4 개)을 사용하십시오. 감사. – IAmTimCorey