我希望能够刷新我的数据网格,因为我正在更新数据库数据网格中的表格并希望看到网格中的更改,是否有任何方法可以每1分钟自动更新数据网格?
答案 0 :(得分:10)
答案 1 :(得分:3)
展望未来,您可以使用ObservableCollection
绑定网格,以避免手动刷新。
答案 2 :(得分:0)
我最终使用了DispatcherTimer,为我简化了一些线程问题:
private static DispatcherTimer _dataUpdateTimer = null;
private ObservableCollection<Item> _items;
public ObservableCollection<Item> Items
{
get { return _items; }
set
{
if (_items == value)
return;
_items = value;
this.OnPropertyChanged(nameof(Items));
}
}
private void SetupDataUpdateTimer()
{
_dataUpdateTimer = new DispatcherTimer();
_dataUpdateTimer.Tick += OnDataUpdateEvent;
_dataUpdateTimer.Interval = TimeSpan.FromMilliseconds(10000);
_dataUpdateTimer.Start();
}
private void OnDataUpdateEvent(object sender, EventArgs e)
{
this.Items = ... add or remove items
// ...
}
当我以前只使用基本的Timer
时,出现此错误:
System.InvalidOperationException
HResult=0x80131509
Message=The calling thread cannot access this object because a different thread owns it.
Source=WindowsBase
StackTrace:
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.DependencyObject.GetValue(DependencyProperty dp)
at System.Windows.Controls.Primitives.Selector.get_SelectedValue()
at ...
at System.Timers.Timer.MyTimerCallback(Object state)