2011-12-16 51 views
1

在調用Windows Phone 7的Web服務,我在Windows Phone 7的在MVVM架構

我添加了一個服務引用與Refrence名RS web服務(服務的.asmx)調用Web服務。 然後我打電話以下服務一樣:

Class AModel 
{ 
    public void CreateT() 
     { 
      RS.RSSoapClient objRS = new RSRSSoapClient(); 
      objRS.Completed += new EventHandler<RS.CompletedEventArgs>(objRS_Completed); 
      objRSAsync(); 
     } 

    private void objRS_Completed(object sender, EventCompletedEventArgs e) 
     { 
      string str = e.Result; 
      responseEventArgs = new ResponseEventArgs(); 
       responseEventArgs.response = e.Result;     
       System.Windows.Deployment.Current.Dispatcher.BeginInvoke(responseEventHandler, responseEventArgs); 
     } 
} 

Class BViewModel 
{ 
     public void CreateT() 
     { 
      AModel objAModel = new AModel(); 
      objAModel.CreateT(); 
      objAModel .responseEventHandler += new ResponseEventHandler(objAModel_responseEventHandler); 
     } 

     private void objAModel_responseEventHandler(ResponseEventArgs e) 
    { 
    //doing some thing 
    System.Windows.Deployment.Current.Dispatcher.BeginInvoke(responseEventHandler, responseEventArgs); 
    } 
} 

這裏我的主要問題是:在這裏,我想用MVVM架構,所以我打電話模型(類AMODEL)服務層在這裏我調用事件通知ViewModel(BViewModel)並在ViewModel中調用相同的事件來通知View(.xaml頁面)。由於這些事件,我的應用程序性能降低(綁定響應的時間很長)。因此,如果在實現MVVM體系結構時出現任何錯誤,請指導。

在此先感謝。

回答

2

讓你的ViewModel做控制。將Web服務的調用放在一個服務對象IMyService中,並讓它返回Dto(s)。從ViewModel調用myService.GetThings();然後用結果做什麼需要。如果你需要映射,顯示或堅持它們。