【发布时间】:2011-06-03 21:51:24
【问题描述】:
public void RefreshEntities(object sender)
{
for (; ; )
{
try
{
//refreshing entities will not add new rows added so datagrid needs to be recreated
if (isChanged())
{
Fetch(); //Reset binding or reconstruct data grid
networkEntityTracker = pLCSignilinxEntities.SIGNILINX_NETWORK.ToList().Count;
systemEntityTracker = pLCSignilinxEntities.SIGNILINX_SYSTEM.ToList().Count;
tagEntityTracker = pLCSignilinxEntities.SIGNILINX_TAG.ToList().Count;
}
pLCSignilinxEntities.Refresh(System.Data.Objects.RefreshMode.StoreWins, pLCSignilinxEntities.SIGNILINX_NETWORK);
pLCSignilinxEntities.Refresh(System.Data.Objects.RefreshMode.StoreWins, pLCSignilinxEntities.SIGNILINX_SYSTEM);
pLCSignilinxEntities.Refresh(System.Data.Objects.RefreshMode.StoreWins, pLCSignilinxEntities.SIGNILINX_TAG);
}
catch (Exception ex)
{
MessageBox.Show("Unable to refresh.");
}
Thread.Sleep(300);
}
}
我有一个从数据源中拖出的数据网格。数据网格对应于从 SQL 数据库创建的实体数据模型表。数据库中的表会定期更改。所以我的程序的目标是在数据网格上显示实时数据。我的程序运行良好,除了新的或删除的行之外,还可以显示实时数据。在 SQL 数据库的表中插入新行或删除行时,datagrid 不会更新该行。
上述函数是刷新数据网格的函数。我想我必须编写 Fetch() 函数来重置绑定或重建数据网格,以便为新添加的行或删除的行更新数据网格。
然后这个函数被后台线程作为委托调用,这样数据网格每300毫秒刷新一次。
【问题讨论】:
标签: c# .net wpf ado.net binding