[英]WPF DataGrid how to refresh Itemsource from Entity-Framework
我想知道是否存在从实体框架(即数据库)刷新DataGrid ItemSource的正确或明智的方法
我需要从数据库表中获取最新数据,因为这些数据是通过Web服务而不是WPF应用程序本身填充的。
我使用了DataGrid.Items.Refresh(),但没有成功。
我可以再次分配Itemsource的Property,但是然后我需要在datagrid上发生一个事件来引起更新(除非那是错误的)
有人有什么建议吗?
谢谢
您只需要正确绑定DataGrid
。
<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">
<StackPanel>
<Button Content="Refresh" Click="Refresh_Click" />
<DataGrid ItemsSource="{Binding Items}"></DataGrid>
</StackPanel>
</Window>
然后清除数据绑定并重新添加项目,UI将自动更新。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private readonly ObservableCollection<Item> _items = new ObservableCollection<Item>();
public ObservableCollection<Item> Items
{
get { return _items; }
}
private void Refresh_Click(object sender, RoutedEventArgs e)
{
using (var context = new AppContext())
{
var items = context.Items.ToArray();
// Clears the item source then re-add all items.
Items.Clear();
Array.ForEach(items, Items.Add);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.