Wpf 绑定到datagrid,在客户端触发数据库更改
我正在编写一个应用程序,它基本上是一个连接到数据库表的DataGrid,非常简单。我正在使用LINQ to SQL并通过一个简单的 dgrid.ItemsSource=_dbcontext.TheTableObjects 该表成功地显示了该表,但是当我从外部(例如从MSSQL)更改数据库值时,DataGrid不会得到更新。我在这里遵循了大多数说明:,除了跳过ObservableCollection的使用,它应该没有区别,对吗Wpf 绑定到datagrid,在客户端触发数据库更改,wpf,linq-to-sql,data-binding,Wpf,Linq To Sql,Data Binding,我正在编写一个应用程序,它基本上是一个连接到数据库表的DataGrid,非常简单。我正在使用LINQ to SQL并通过一个简单的 dgrid.ItemsSource=_dbcontext.TheTableObjects 该表成功地显示了该表,但是当我从外部(例如从MSSQL)更改数据库值时,DataGrid不会得到更新。我在这里遵循了大多数说明:,除了跳过ObservableCollection的使用,它应该没有区别,对吗 当数据库表的内容在外部发生更改时,我希望绑定更新,从而更新datagr
当数据库表的内容在外部发生更改时,我希望绑定更新,从而更新datagrid。我本能地对自己说:“这太愚蠢了。。。客户端应用程序如何可能在没有某种轮询的情况下知道数据库内容?……但我也不知道LINQ to SQL到底有多聪明……jberger提供了最佳答案 你的直觉是正确的。你必须投票。使用ObservableCollection添加、删除将自动传播到DataGrid的增量实例
你的直觉是正确的。你必须投票。使用ObservableCollection添加、删除将自动传播到DataGrid的增量实例。除了显示值之外,应用程序是否还执行其他操作?如果需要热启动其他按钮/功能,则需要在后台执行轮询。如果它是只读的,您可能希望使用ListView/GridView,因为它比DataGrid轻。您可以使用CLR触发器获取通知。我说可能-我没有将此作为答案发布。感谢您的回答,抱歉,请在问题中提出另一个问题,但是:轮询数据库和填充网格的UI干扰最小的方式是什么?目前,我只是在一个Dispatchermer中更新ObservalEQUEUE,每次触发时,我都感觉UI有点滞后。就应用程序响应而言,有没有更好的方法来实现这一点?