我的场景非常简单,我使用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然后再返回,或者更好的方法来实现它?
答案 0 :(得分:0)
是的,您必须定期调用存储过程。
您可以将绑定设置为TwoWay,但这只会跟踪内存中对象的更改。由于数据库已被删除一步,因此您必须再次拨打电话。