将新属性动态添加到属于 WPF Datagrid 中显示的 class 列表的 class

Add new properties dynamically to a class which belongs to a list of class shown in WPF Datagrid

我知道有一些问题正在解决这个问题,但他们最终没有找到 vb.net 及其在 WPF 数据网格中的应用的解决方案。

我正在将 winform 应用程序移动到 WPF。我的应用主要是基于datagrids,问题就来了,因为wpf中的datagrids使用的角度不一样

在我的旧应用程序中,我有显示在数据网格中的数组。当我转移到 WPF 时,我试图将它们移动到 classes 列表中,以便在数据网格中显示它们。

我需要用户能够更改属性的数量(周期数)。

我怎样才能做到这一点?我读过,也许解决方案是在 class 中添加字典,但我不知道如何应用它来创建新属性。

这是我的代码:

 Public Class Cashflow
    Property Period1 As String
    Property Period2 As String

    Sub New(Period1 As String, Period2 As String)
        Me.Period1 = Period1
        Me.Period2 = Period2
    End Sub

End Class

Public Function GenerateList()
    Dim Cashflows As New List(Of Cashflow)
    Cashflows.Add(New Cashflow("500", "600"))
    Return Cashflows
End Function

Private Sub GenerateListBt_Click(sender As Object, e As RoutedEventArgs) Handles GenerateListBt.Click
    'GenerateList()
    Datagrid.ItemsSource = GenerateList()
End Sub

最后,我发现我们仍然可以通过使用 od WindowsFormsHost 使用 "old" DataGridView。它是一个 WPF 控件,可以是任何你想要的控件,但需要使用 XAML 代码进行配置。

所以我没有将旧的 DataGridViews 传递给 WPF Datagrids,而是将它们传递给了我仍在配置的 WindowsFormsHost。这允许我重新使用原始应用程序中的代码。

虽然我找到了这个解决方案,但我仍然对使用 WPF Datagridviews 解决这个问题感兴趣,因为也许我会在未来转向这种方法。