【发布时间】:2013-12-13 11:25:05
【问题描述】:
我有一个 LongListSelector,可以将交易数据加载到其中。我对数据加载没有问题。我想过滤一个日期期间的数据,我知道如何使用 linq。问题是进程在 backgroundWorker 中运行,我无法从 DatePicker 获取值,因为它违反了跨线程操作。
我当前的后台工作代码是
Private Sub bw_loadTraDoWork(sender As Object, e As DoWorkEventArgs)
'all transactions
Try
Dispatcher.BeginInvoke(Sub()
SetProgress(True, "Working...")
End Sub)
Dim db = New n_DataContext(Common.ConnectionString)
Dim query = (From t In db.TransactionTable Join c In db.ExCat On c.ID Equals t.cat_id Order By t.tra_date Descending Order By t.ID Descending Select New TraList With {.tra_type = c.n_type, .amount = t.amount, .tra_date = t.tra_date, .note = t.note, .cat_name = c.cat_name, .ID = t.ID})
Dim groupedObjects = From myObject In query Group myObject By myObject.tra_date Into grouped = Group Select New Grouping(Of DateTime, TraList)(grouped)
Dispatcher.BeginInvoke(Sub()
LstTransactions.ItemsSource = groupedObjects
End Sub)
Catch ex As Exception
MessageBox.Show("An error occured. try later.", "Oops!", MessageBoxButton.OK)
End Try
End Sub
我尝试在Dispacher.BeginInvoke 中包装一个变量,但无法获取值。
请帮帮我。
【问题讨论】:
标签: vb.net windows-phone-7 silverlight-toolkit