2012-10-08 3 views
4

문제는 UI 컨트롤에 오랜 시간 작동 getter 바인딩입니다. 예를 들어 내가 좋아하는 특성이있는 경우 :Windows 8. Metro 응용 프로그램. XAML 비동기 바인딩

public string ButtonText 
{ 
    get 
    { 
     Task.Delay(3000).Wait(); 
     return _buttonText; 
    } 
    set 
    { 
     _buttonText = value; 
    } 
} 

와 같은 UI 컨트롤 XAML에서 바인딩 : UI 스레드가 차단 될 Content="{Binding ButtonText}". 바인드 된 데이터를 백그라운드에서로드 할 수있는 WPF에는 Binding.IsAsync 속성이 있지만 Metro 프레임 워크에는 이러한 속성이 없습니다.

누구나 메트로 응용 프로그램에서 비동기 바인딩을 만들 수있는 방법에 대한 아이디어가 있습니까?

답변

-1

Microsoft는 속성 비동기를 얻는 데 필요한 속성 취득자/설정자에서 Microsoft가 의도적으로이 작업을 수행하지 않도록 권장합니다. UI 스레드를 차단하지 않는 "새로운"방법은 대신 await Task.Delay(3000)과 같은 작업을 수행하는 것입니다. await은 실행을 차단하지만 스레드는 아닙니다 (정확히 수행하려는 작업).

다음은 .NET 4.5의 C#에서 await 키워드에 대한 자세한 정보 페이지입니다. 페이지 하단의 예제는 코드의 모양을 보여줍니다.

http://msdn.microsoft.com/en-us/library/hh156528.aspx

+2

하지만 어떻게 재산의 내부 기다리고 호출 할 수 있습니다? –

+0

신경 쓰지 마라. 추측하면 이것이 작동하지 않을 것입니다. –

관련 문제