【问题标题】:MVVM binding DataGrid (WPF Toolkit) to DataTableMVVM 将 DataGrid (WPF Toolkit) 绑定到 DataTable
【发布时间】:2009-10-16 11:26:15
【问题描述】:

我在我的项目中使用 MVVM,设置为 DataTable 的绑定第一次可以正常工作,但是在我在 DataTable 上更新数据后,它似乎对 DataGrid 没有影响。有人知道怎么解决吗?

【问题讨论】:

    标签: mvvm datatable wpftoolkit


    【解决方案1】:

    如果没有更多信息和一些代码,很难说(而且我没有使用 WPF Toolkit 网格 - 我使用 Infragistics 网格。)有几件事:

    • 您是否在 MVVM 类中通知 UI 属性更改(通过实现 INotifyPropertyChanged 接口)?

    • 您说“在更新 DataTable 上的数据之后”。怎么更新?通过网格,还是通过其他方式?您的 MVVM 类是否正确“刷新”(并因此通知数据网格/UI 数据已更改)?

    我对这些东西有过不同的运气。如果我以编程方式将元素添加到集合中,有时 Infragistics 网格不会更新。我几乎必须重新阅读整个内容才能更新网格。我还没有找到原因。也许您在这里处理的是类似的“异常”。

    抱歉,不一定有帮助,但可能足以为您指明正确的方向...如果没有更多信息,将无济于事。

    【讨论】:

    • 1.不,我没有实现 INotifyPropertyChanged 接口。我将尝试实施它(明天)。 2. 通过绑定到 UI 控件的 ViewModel 上的命令进行更新。
    • 我还没有尝试过这种方法(通过命令),但它看起来确实只是 UI 没有被告知基础数据已更改。你可以在后台做你想做的事,但如果 UI 没有“获取备忘录”,它就不会更新。
    • 我发现了问题,忘记触发 OnPropertyChanged 但我不知道如何用 DataTable 实现它。
    • 我不认为您可以直接在DataTable对象上使用它(我不使用DataTable。)创建一个具有与相应列对应的属性的类,然后不过,从 DataTable 构建它的集合可能会起作用(类中的属性将使用 OnPropertyChanged 来通知 UI。)
    • 我的意思是上面的不能直接使用... D'OH!
    猜你喜欢
    • 2018-02-07
    • 2023-04-02
    • 2013-03-24
    • 2013-07-28
    • 2012-03-06
    • 1970-01-01
    • 2019-12-22
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多