从存储过程和复杂类型更新DataGrid显示

时间:2017-03-09 23:06:04

标签: c# wpf entity-framework datagrid

我的场景非常简单,我使用EF和SQL Server创建数据显示,并创建了一个存储过程,以复杂类型的形式将一些显示数据返回给我的ViewModel:

private IEnumerable<MyComplexType_Result> region1;
region1 = db.GetRegionalData(North).ToList();

public IEnumerable<MyComplexType_Result> Region1
{ get { return region1; } }

在我的XAML中,我将Region1属性绑定到datagrid:

<DataGrid ItemsSource="{Binding PreTrainRegion1}" AutoGenerateColumns="False">
...
</DataGrid>

这有效,但如果对底层数据库进行了任何更改,我还需要更新显示。我最近使用过一次INotifyPropertyChanged,但我不确定如何在这种特定情况下实现任何类型的更改通知,因为数据来自于应用程序首次打开时发生一次的存储过程调用。我是否需要在计时器上调用存储过程来刷新显示数据,将ItemsSource设置为null然后再返回,或者更好的方法来实现它?

1 个答案:

答案 0 :(得分:0)

是的,您必须定期调用存储过程。

您可以将绑定设置为TwoWay,但这只会跟踪内存中对象的更改。由于数据库已被删除一步,因此您必须再次拨打电话。