2011-09-13 23 views
6

SL'de DispatcherHelperftom MVVM hafif araç setini nasıl kullanabileceğimi anlamaya çalışıyorum, ancak hiçbir örnek bulamıyorum. Bu çerçevenin ana sayfasındaBasit örnek DispatcherHelper

biliyorum ki

DispatcherHelper sınıfı, sen iş parçacıklı uygulamalar oluşturmak için yardımcı hafif sınıfı.

Ama nasıl kullanacağımı bilmiyorum.

Nasıl ve ne için kullanabilirim?

cevap

17

Yalnızca farklı bir iş parçacığı üzerinde çalışan koddaki kullanıcı arabiriminizdeki bileşenlerde değişiklik yapmak istediğinizde DispatcherHelper'a gereksiniminiz vardır. Örneğin. Bir Silverlight uygulamasında, bazı verileri eşzamansız olarak almak için bir web servisi çağırırsınız ve şimdi Ui'yi OnNotifyPropertyChanged olayı aracılığıyla mevcut olduğunu bildirmek istersiniz.

İlk önce DispatcherHelper'u başlatmanız gerekir. Silverlight size Application_Startup bunu: başlatma App sınıfının statik yapıcı yapılır WPF

//initialize Dispatch helper 
private void Application_Startup(object sender, StartupEventArgs e) { 
    RootVisual = new MainPage(); 
    DispatcherHelper.Initialize(); 
} 

: En asnc aramanın tamamlandığını taşıma, Etkinliğinizde Sonra

static App() { 
    DispatcherHelper.Initialize(); 
} 

, UI parçacığında RaisePropertyChanged çağırmak için aşağıdaki kodu kullanımı:

DispatcherHelper.CheckBeginInvokeOnUI(
    () => RaisePropertyChanged(PowerStatePropertyName) 
); 

DispatcherHelper.BeginInvokeOnUl çok y bir Action bekler Burada herhangi bir kodu kullanabilirsiniz daha karmaşık görevleri yapmak için sadece

DispatcherHelper.CheckBeginInvokeOnUI(
    () => { /* complex code goes in here */ } 
); 

kullanabilirsiniz.