2012-03-18 52 views
0

我正在使用Web服務,因此我添加了對我的應用程序的服務引用。 我需要在列表框中顯示數據。爲此,我只寫了下面的代碼,但它不工作,我不斷收到錯誤。我的代碼是如何使用列表框上的遠程數據

public Antocids() 

    { 

     InitializeComponent(); 

     ObservableCollection<Class1> p = new ObservableCollection<Class1>(); 
     ServiceReference3.ProductsClient client = new ServiceReference3.ProductsClient(); 
     client.getProdDetailsCompleted += new EventHandler<ServiceReference3.getProdDetailsCompletedEventArgs>(client_getProdDetailsCompleted); 
     client.getProdDetailsAsync(); 
    } 
    private void client_getProdDetailsCompleted(object sender, ServiceReference3.getProdDetailsCompletedEventArgs e) 
    { 
     ObservableCollection<Class1> p = e.Result; //here I'm getting the error 

     listBox1.DataContext=p; 
    } 

請告訴我確切過程

+1

請添加您收到的任何錯誤消息。 – WarrenFaith 2012-03-18 13:36:16

回答

0

我猜你的服務引用不返回ObservableCollection<Class1>類型的結果。在這種情況下,把它當作是沒有意義的。你應該做的,而不是爲元素添加到一個ObservableCollection,當你收到你的結果:

ObservableCollection<Class1> p = new ObservableCollection<Class1>(); 
public Antocids() 
{ 

    InitializeComponent(); 
    listBox1.DataContext=p; 

    ServiceReference3.ProductsClient client = new ServiceReference3.ProductsClient(); 
    client.getProdDetailsCompleted += new EventHandler<ServiceReference3.getProdDetailsCompletedEventArgs>(client_getProdDetailsCompleted); 
    client.getProdDetailsAsync(); 
} 
private void client_getProdDetailsCompleted(object sender, ServiceReference3.getProdDetailsCompletedEventArgs e) 
{ 
    p.Clear(); // assuming you want to clear the data each time you get a new result 
    foreach(var result in e.Result) 
     p.Add(result) // assuming that e.Result holds an IEnumerable of Class1. 
} 

如果你的服務不返回某種類型的Class1的集合,那麼你將需要手動解析到Class然後將其添加到可觀察的集合中。

+0

p.Add(result);//這裏錯誤來了錯誤是最好的重載方法添加(.....)有一些無效的參數 – user1151378 2012-03-19 05:53:50

相關問題