2012-07-26 28 views
0

我有一個WPF客戶端,一個WCF服務和一個Silverlight客戶端(SL 4)的解決方案。Silverlight客戶端中的ObservableCollection問題<T>

WPF客戶端工作正常,但Silverlight正在採取行動,我不知道如何處理它。

這些代碼的片斷我在Silverlight:

using sl_HFClient.svc; 

namespace sl_HFClient 
{ 
public partial class MainPage : UserControl 
{ 
    svc.IhfsvcClient dataSrv = new svc.IhfsvcClient(); 
    ObservableCollection<svc.ReasonData> reasonData; 
} 

這是設置好一切,其次是在調用服務:

private void UserControl_Loaded(object sender, RoutedEventArgs e) 
    { 
     dataSrv.wcGetReasonsCompleted += ReasonsLoaded; 
     dataSrv.wcGetReasonsAsync(); 
    } 

,最後,代碼以獲得集合並將其綁定到組合框:

private void ReasonsLoaded(object sender, wcGetReasonsCompletedEventArgs e) 
    { 
     reasonData = e.Result; 
    } 

但是,這會返回以下錯誤:

Cannot implicitly convert type 'sl_HFClient.svc.ReasonData[]' to 'System.Collections.ObjectModel.ObservableCollection'

我是很新的Silverlight和C#,我以前用這個代碼似乎工作一個VB.NET項目比較做了一些事情SL4和VB.NET和 。

我在做什麼錯?

// JaggenSWE

回答

0

嘗試以下操作:

private void ReasonsLoaded(object sender, wcGetReasonsCompletedEventArgs e) 
{ 
    reasonData = new ObservableCollection<ReasonData>(e.Result); 
} 

不能完全確定這是否會在Silverlight工作,但仍然解決方案是明確創建一個新的ObservableCollection<ReasonData>,而不是試圖隱式地從投一個ReasonData[]

+0

感謝一羣,像一個魅力工作。 :)顯式和隱式轉換是我在閱讀c#atm的書中的兩章。 :) – JaggenSWE 2012-07-26 23:13:00

+0

很高興我能幫到你。 – sellmeadog 2012-07-26 23:16:44