2013-02-10 78 views
2

我有检索项目的问题数在Silverlight应用程序,来用SQL我使用下面的代码项目的组合框:净Silverlight的WCF RIA查询项目数

objctx = New BanksDomain 
     Dim itemType = NameComboBox.SelectedItem.[GetType]() 
     Dim pi = itemType.GetProperty(NameComboBox.DisplayMemberPath) 
     Dim cbi = pi.GetValue(NameComboBox.SelectedItem, Nothing).ToString() 
     Dim BankName As String = cbi 

     Dim query As EntityQuery(Of Branches) = objctx.GetBranchesByBankQuery(BankName) 
     query.IncludeTotalCount = True 
     Dim loadOp As LoadOperation(Of Branches) = Me.objctx.Load(query) 

     Branch_NameComboBox.ItemsSource = loadOp.Entities 

我试图得到计数从组合框计数没有用,我试图加载它的文本框。文本= loadop.entities.count但它显示“0”

我不知道什么是错的,我似乎无法这样做,虽然它应该很简单,可能有人帮我出去

回答

2

请不要忘记呼叫RIA服务是异步的。因此加载函数返回一个异步结果。

Dim loadOp As LoadOperation(Of Branches) = Me.objctx.Load(query) 
Branch_NameComboBox.ItemsSource = loadOp.Entities 

然后,如果你只是负载的呼叫后检查itemsSource.count(),它仍然是0。 但是,如果你等待异步结果(可能在负载功能的回调处理它),你会看到请求的真实结果,如果你的请求是正确的,它不应该是0。

1

非常感谢哥们,你救了我的命,现在我可以得到数和这里是代码,如果有人需要它总有一天:

Dim query As EntityQuery(Of Branches) = objctx.GetBranchesByBankQuery(BankName) 
      query.IncludeTotalCount = True 
      Dim loadOp As LoadOperation(Of Branches) = Me.objctx.Load(query, New Action(Of LoadOperation(Of Branches))(AddressOf GetBranchesCompleted), True) 

Then 

Private Sub GetBranchesCompleted(args As LoadOperation(Of Branches)) 

     Branch_NameComboBox.ItemsSource = args.Entities 
     NoOfBTextBlock.Text = args.Entities.Count.ToString 


    End Sub 

再次感谢...