2017-03-09 70 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