2017-03-09 72 views
0

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

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

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

而在我的XAML我结合区域1属性到DataGrid:

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

这工作,但我还需要显示,如果有对底层数据库所做的任何更改更新。我最近使用了INotifyPropertyChanged,但是我不确定如何在这个特定场景中实现任何类型的更改通知,因为数据来自应用第一次打开时发生的存储过程调用。我是否需要调用定时器上的存储过程来刷新显示数据,将ItemsSource设置为null,然后再返回,或者实现它的更好方法是什么?

回答

0

是的,您将不得不定期调用存储过程。

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

+0

我猜在哪里我感到困惑是如何从ViewModel做到这一点,或者这一切都必须通过代码隐藏? – rudeboy