【问题标题】:Link List(Of Structures) to DataGrid将列表(结构)链接到 DataGrid
【发布时间】:2012-07-12 09:47:02
【问题描述】:

我有以下结构

Public Structure matrixblock
  Public name As String
  Public firstReference As List
  Public secondReference As List
End Structure

我将一堆这样的结构保存在另一个列表中:

dim result as List(of matrixblock)

我想将此列表绑定到 DataGrid,列中应为:

  • 第一栏:名称
  • 第二列:firstReference.Count
  • 第三列:secondReference.Count

有人可以帮我设置吗? 谢谢

【问题讨论】:

    标签: wpf vb.net datagrid


    【解决方案1】:

    如果直接绑定 matrixblock 结构,如果任何项目被添加到内部列表中,绑定的计数属性将不会更新。您最好将其设为一个类,并实现 INotifyPropertyChanged 接口,并向您的类添加两个新属性,它们代表您列表的计数属性。

    但是,如果您这样做了,仍然需要处理了解列表计数何时更改、何时将项目添加或删除到列表中的逻辑。你可以利用 ObservableCollections 来解决这个问题。

    实际上,无论如何,您都不应该直接绑定结构或类,而应该使用 MVVM 模式,并拥有一个 ViewModel 来公开您希望绑定到数据网格的属性。在 google 上进行快速搜索将为您指明 MVVM 模式的正确方向。

    【讨论】:

    • 当我将数据放入数据网格时,我的项目中的结果列表将不再更改。我可以不只是将每行的元素从我的结构中取出,然后让它们显示在数据网格中吗?
    • Ben,如果 count 的值一旦设置就不会改变,你可以将两个 Count 值公开为你的结构/类或包装 ViewModel 的特定属性,如果你沿着这条路线走。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2011-01-16
    • 2023-04-03
    相关资源
    最近更新 更多