我有一个Silverlight 4应用程序,我的任务是对其进行一些更改。我宁愿在支持的东西中重做它,但目前还不是一个选项。我有一个数据网格,并且我添加了一个按钮,使用两个组合框中的值将新行插入到数据网格和数据库表中:
Private Sub btnAddAccountGroupLink_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnAddAccountGroupLink.Click
Dim sv_ag As Com_AccountGroup = cbACCT_GROUP.SelectedValue
Dim sv_cf As CS_FUND = cbACCT_CD.SelectedValue
AccountGroupLinkData.DataView.Add(New Com_AccountGroupLink() With {.ACCT_GROUP = sv_ag.ACCT_GROUP, .ACCT_CD = sv_cf.ACCT_CD})
AccountGroupLinkData.SubmitChanges()
End Sub
添加行时,会将其添加到数据网格的底部,而不是添加到正确排序的位置。这也会破坏我从数据网格中删除所选索引的代码:
Private Sub btnRemoveSelected_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btnRemoveSelected.Click
If MessageBox.Show("Are you sure you want to delete the selected records?", "Confirmation", MessageBoxButton.OKCancel) = MessageBoxResult.OK Then
Dim indexesToDelete As New List(Of Integer)
For i As Integer = 0 To AccountGroupLinkData.DataView.Count - 1
If AccountGroupLinkData.DataView(i).IsSelected Then
indexesToDelete.Add(i)
End If
Next i
For d As Integer = 0 To indexesToDelete.Count - 1
AccountGroupLinkData.DataView.RemoveAt(0)
Next d
AccountGroupLinkData.SubmitChanges()
End If
End Sub
因此,如果我删除底行,它实际上会删除该行应该位于的行。
如何强制数据网格更新或将行显示在正确的位置?
答案 0 :(得分:1)
我通过在SubmitChanges:
之后添加此代码解决了这个问题NavigationService.Refresh()
这会刷新Silverlight页面,行会弹出到正确的位置。