1

我正在尝试在 Win 8 手机 UI 上显示来自 web 服务(我知道可以工作)的一些数据,但是在尝试将默认应用程序更改为满足我要求的应用程序时遇到了一些问题。我的代码

Private m_Cust As ObservableCollection(Of CustomerMobileApp.CustomerWebService.Customer)

Public Sub LoadData()
    Dim CustServ As New CustomerWebService.CustomerClient

    AddHandler CustServ.GetCustomersCompleted, AddressOf CustomersCompleted
    CustServ.GetCustomersAsync()

    IsDataLoaded = True
End Sub

Private Sub CustomersCompleted(sender As Object, e As CustomerWebService.GetCustomersCompletedEventArgs)
    m_Cust = e.Result
End Sub

当我在调试模式下查看它时,这段代码显示了带有数据的 m_Cust。问题是手机 UI 上没有显示数据。回顾一下有效的演示应用程序,它有以下声明

Public Property Items As ObservableCollection(Of ItemSomething)

然后将其添加到 LoadData 方法以添加新项目,即 Items.Add(New ItemSomething("Value 1"))

但是我无法在上面的代码中执行此操作,因为我收到错误“'System.Collections.ObjectModel.ObservableCollection(Of MobileApp.CustomerWebService.Customer)' cannot be convert to 'System.Collections.ObjectModel.ObservableCollection(Of MobileApp.ItemCustomer) ’。”

ItemCustomer 是我在 ViewModel 文件夹下为 MobileApp 创建的类,Customer 是 Web 服务的一部分。

我已经花了一些时间在这方面并不确定该怎么做,因为我知道问题出在哪里,但不知道如何解决或如何正确地解决,因为我找不到任何工作示例。

感谢任何帮助

4

1 回答 1

0

类型必须相同。如果您使用Entity Framework的是Web Service您返回的EF模型。如果您不使用,EF则在 the 上使用 make a Composite Type(在您的情况下 - 因为它们很复杂)Web Service并返回它们。您可能必须itemSomething通过循环来构建您的对象e.Result

复合类型:

Public Class SomeType
 Public Property Foo As Integer
 Public Property Fubar As String
End Class

这只是从服务传递多个值的一种方式。

于 2013-08-02T22:10:09.407 回答