【问题标题】:Update DataGrid Display From Stored Procedure And Complex Type从存储过程和复杂类型更新 DataGrid 显示
【发布时间】:2017-03-09 23:06:03
【问题描述】:

我的场景非常简单,我正在使用 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 ItemsSource="{Binding PreTrainRegion1}" AutoGenerateColumns="False">
...
</DataGrid>

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

【问题讨论】:

    标签: c# wpf entity-framework datagrid


    【解决方案1】:

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

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

    【讨论】:

    • 我想我感到困惑的地方是如何从 ViewModel 中做到这一点,或者这一切都必须通过代码隐藏来完成?
    猜你喜欢
    • 2019-09-06
    • 2018-05-31
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 2012-03-02
    • 2014-04-25
    相关资源
    最近更新 更多