DataGrid 的源更新时会触发哪个事件?我已经尝试过 DataContextChanged 和 SourceUpdated 但它从未成功过。
其实我需要一个简单的东西。我想,如果有新行出现,请将 GridView 的滚动条向下滚动到底部以查看它是什么。
DataGrid 的源更新时会触发哪个事件?我已经尝试过 DataContextChanged 和 SourceUpdated 但它从未成功过。
其实我需要一个简单的东西。我想,如果有新行出现,请将 GridView 的滚动条向下滚动到底部以查看它是什么。
我有同样的问题,我以这种方式管理它
DataGrid myGrid = new DataGrid();
CollectionView myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(myGrid.Items);
((INotifyCollectionChanged)myCollectionView).CollectionChanged += new NotifyCollectionChangedEventHandler(DataGrid_CollectionChanged);
然后您需要在事件处理程序中实现逻辑DataGrid_CollectionChanged
。
为 ItemsSource 绑定设置 NotifyOnTargetUpdated = true 并处理 TargetUpdated 事件。如果您有多个绑定,则查找 DataTransferEventArgs 属性以确定目标是否为 ItemsSource。
如果您在将某些内容添加到数据库本身时尝试刷新网格,那将不会发生。我比 WPF 更熟悉 WinForms,但我假设没有神奇的方法来保持网格与数据库同步,而无需编写一些持续检查数据库更改的后台进程。
如果您正在更新网格的实际数据源(例如集合),那么这将更新网格。
就我而言,我使用了 SelectionChange 通知,它引发了每个事件 Del/Add/Edit/Select 它工作得很好
private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Console.WriteLine("hi");
}