【问题标题】:WPF datagrid data refreshWPF datagrid 数据刷新
【发布时间】:2013-11-06 17:04:01
【问题描述】:

我正在做一个 WPF(MVVM) 仪表板,显然是 DevEx 控件(尚未决定),在开始之前,我想澄清几个问题。

Q1:用于开发带有显示一些图形的网格的仪表板屏幕,选择哪些数据网格、原生 WPF 数据网格或任何其他 3rd prty(如 DevExpress 控件)?

Q2:如何让datagrid刷新数据库端的数据变化。我将使用 datareader 从模型中获取数据并将其绑定到网格。我不希望用户担心通过单击按钮或其他一些控制事件来刷新屏幕,对数据所做的任何更改都应该在没有用户干预的情况下刷新到网格。其他外部系统对数据库所做的更改,但不是此应用程序的 GUI。

提前致谢

【问题讨论】:

    标签: wpf datagrid


    【解决方案1】:

    在您的模型中公开委托或事件,当值更改时,您的模型将知道。因此,在这种情况下,您可以简单地调用该委托或事件

    在您的 ViewModel 中,拥有私有方法并将该方法与模型的委托或事件挂钩。

    当模型调用委托或事件时,将调用在被挂钩的视图模型中的方法,在该方法中,您可以再次查询数据库并更新绑定到视图的属性,这将自动刷新视图(UI)

    【讨论】:

    • Kumareshan,我的模型如何知道对数据库所做的任何更改?一旦模型知道,那么您的建议就可以与 VM 和 V 进行通信,但我的问题仍然存在于 DB 和模型之间。
    • 我假设只有模型更新数据库。如果我错了纠正我。是否有任何其他外部源更新数据库。如果这样让所有事情都通过 Model 进行,那么你的工作将非常轻松
    • 不,我的模型没有更新数据库,另一个外部系统更新了数据库。
    • 在这种情况下,作为一种变通方法,您可以在模型中使用 Thread 继续检查 DB 的状态,并在 DB 发生更改时通知 Viewmodel。不建议这样做,因为 Thread 是昂贵的操作,除了检查数据库的状态之外,它在您的情况下什么都不做,如果您发现任何其他更好的解决方案,请继续使用其他方式,您可以解决此问题
    • 对选择哪个控件有任何想法吗?原生数据网格是否提供添加 gfx 等的灵活性
    猜你喜欢
    • 2010-12-19
    • 2012-12-09
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 2014-07-27
    • 1970-01-01
    相关资源
    最近更新 更多