.net - VB .Net 对象列表中的对象列表
问题描述
我有一个程序可以将满足条件的对象列表中的两个对象结合起来。
我的问题是已婚对象的第二个列表没有正确显示,我不知道我是否做错了什么。
这是我的代码。我有这个类的属性等:
Public Class Gallo
Dim taquilla As Integer
Dim libras As Integer
Dim onzas As Integer
Dim puya As Integer
Dim tuerto As Boolean
Dim puntos As Decimal
Dim excluir(3) As Integer
使用这个类,我比较这些值,如果其中两个满足条件,我想将这两个对象添加到另一个名为Married
Public Class Casados
Dim casado1 As Gallo
Dim casado2 As Gallo
Public Sub New(casado1 As Gallo, casado2 As Gallo)
Me.casado1 = casado1
Me.casado2 = casado2
End Sub
Public Property casado1P
Get
Return casado1
End Get
Set(value)
casado1 = value
End Set
End Property
Public Property casado2P
Get
Return casado2
End Get
Set(value)
casado2 = value
End Set
End Property
End Class
我列出了那个名为casados
Private misCasados As New List(Of Casados)
然后,当两个对象满足我添加到该列表的条件并在 datagridview 中显示它们时。
If diferenciaTotal < 2 And diferenciaTotal > -2 Then
Dim casados As Casados
casados = New Casados(misGallos(i), misGallos(j))
misCasados.Add(casados)
End If
End If
Next j
End If
Next i
dataCasados.DataSource = ""
dataCasados.DataSource = misCasados
For i = 0 To misCasados.Count - 1
Console.WriteLine()
Console.WriteLine(misCasados(i))
Next
问题是 datagridview 中显示的信息只是Gallos.Gallo
(类名)而不是我想要的信息。我想显示哪些对象已结婚并显示 idTaquilla
以知道他们是谁。
解决方案
您应该配置 DataGridView 以Gallo
通过Casados
类显示类的属性。
DataGridView
绑定只识别属性(不会显示公共字段),例如类Gallo
本身无法显示,除非您将所有字段转换为属性。
Option Strict On ' This is "must have"
Public Class Casados
Private _first As Gallo
Private _second As Gallo
Public Sub New(first As Gallo, second As Gallo)
_first = first
_second = second
End Sub
Public Property TaquillaOfFirst As Integer
Get
Return _first.taquilla
End Get
Set(value As Integer)
_first.taquilla = value
End Set
End Property
Public Property TaquillaOfSecond As Integer
Get
Return _second.taquilla
End Get
Set(value As Integer)
_second.taquilla = value
End Set
End Property
End Class
配置列DataGridView
以显示属性 TaquillaOfFirst
和TaquillaOfSecond
请注意,该行dataCasados.DataSource = ""
是多余的,请随意删除它。
不相关但
If diferenciaTotal < 2 AndAlso diferenciaTotal > -2 Then
Dim casados As New Casados(misGallos(i), misGallos(j))
misCasados.Add(casados)
End If
当您设置Option Strict
为On
您将开始受益于编译器帮助,它将识别可能的类型错误。
推荐阅读
- r - 将 ts 对象转换为人类可读的时间格式
- bash - Gatsby develop 命令在 macOS High Sierra 上失败,没有显示错误消息
- node.js - 如何将 Moodle 中的学生数据导入 LTI 工具(Web 应用程序)
- html - 如何在其 flexbox 父容器包装之前使子 div 包装?
- pytorch - PyTorch Jupyter Notebook 图像无法找到火炬
- firebase - 我的 FirebaseStorage 方法没有在 Flutter 中运行。在 `firebase_storage: ^4.0.0` 之后
- javascript - 具有嵌套父项和子项的复选框树视图。?
- react-native - React navigation v5 - 如何从底部标签打开抽屉并显示底部标签的抽屉背面
- selenium - 无法在 xpath 中使用和条件定位元素
- reactjs - React 测试库:渲染没有返回任何内容。这通常意味着缺少 return 语句。或者,不渲染任何内容,返回 null