thblovehl 2024-05-16 23:06 采纳率: 100%
浏览 11
已结题

WPF应用DataGrid.Items和DataGrid.itemsSource不同步是什么原因

​环境:VC2019/WPF/.NET 8.0/VB/ACCESS

img

 我试过的方法有

重新绑定

MyDT.Rows.Add(MyDT.NewRow)
MyDG.ItemsSource = MyDT
MyDG.SelectedItem = MyDG.Items(MyDG.Items.Count - 1)

提交更改

MyDT.Rows.Add(MyDT.NewRow)
MyDT.AcceptChanges()
MyDG.SelectedItem = MyDG.Items(MyDG.Items.Count - 1)

UI线程转换

Dispatcher.Invoke(Sub()
                              MyDT.Rows.Add(MyDT.NewRow)
                          End Sub)
MyDG.SelectedItem = MyDG.Items(MyDG.Items.Count - 1)

刷新

MyDT.Rows.Add(MyDT.NewRow)
MyDG.Items.Refresh()
MyDG.SelectedItem = MyDG.Items(MyDG.Items.Count - 1)

视图刷新

MyDT.Rows.Add(MyDT.NewRow)
Dim cv As CollectionView = CollectionViewSource.GetDefaultView(MyDG.ItemsSource)
cv.Refresh()
MyDG.SelectedItem = MyDG.Items(MyDG.Items.Count - 1)

以上方法都没有效果,新增行始终都没有显示,求解,谢谢!

最终发现,对新生成的行进行一次修改(比如给某一列赋值)再添加到数据源中,DataGrid就能够正常显示了,不明白原因,求解惑

  • 写回答

4条回答 默认 最新

  • thblovehl 2024-05-17 09:10
    关注

    最终发现,对新生成的行进行一次修改(比如给某一列赋值)再添加到数据源中,DataGrid就能够正常显示了,不明白原因,求解惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日
  • 修改了问题 5月17日
  • 创建了问题 5月16日