Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从存储过程和复杂类型更新DataGrid显示_C#_Wpf_Entity Framework_Datagrid - Fatal编程技术网

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

C# 从存储过程和复杂类型更新DataGrid显示,c#,wpf,entity-framework,datagrid,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

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

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

public IEnumerable<MyComplexType_Result> Region1
{ get { return region1; } }
私有IEnumerable区域1;
region1=db.GetRegionalData(North.ToList();
公共IEnumerable区域1
{get{returnregion1;}}
在我的XAML中,我将Region1属性绑定到datagrid:

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

...

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

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


您可以将绑定设置为双向,但这只会跟踪内存中对象的更改。由于数据库又被删除了一步,因此您必须再次调用。

我想我感到困惑的是如何从ViewModel中执行此操作,或者这一切都必须通过后面的代码来完成?