在 observablecollection 上使用数据绑定时,Datagrid 值未在 wpf vb.net 中更新

Datagrid values not updating in wpf vb.net when using databinding on an observablecollection

我在数据网格中使用数据绑定,我可以将值放入网格中,但是当我编辑它们时,它不会触发 属性 中值的更新。我希望能够在更改值后对其执行某些操作。

在我的 PLPage.xaml.vb 我有:

Class PLPage
Implements INotifyPropertyChanged

Public MyCollection As New ObservableCollection(Of Pl)

Dim reg As List(Of String) = New List(Of String)()

Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged

Public Sub New()
    InitializeComponent()
    Me.DataContext = MyCollection

End Sub

Private Sub FillData()
Dim pla As Pl = New Pl()
            pla.Reg = reg(count)

            MyCollection.Add(pla)


        PGTable.ItemsSource = MyCollection
End Sub

Public Class Pl
    Implements INotifyPropertyChanged
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged

Public Property _r As String

Public Property Reg As String
    Get
        Return _r
    End Get
    Set(value As String)
        If _r <> value Then
            _r = value
            'RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Reg"))
            NotifyPropertyChanged("Reg")
        End If
    End Set
End Property

Private Sub NotifyPropertyChanged(propertyName As String)
    Me.OnPropertyChanged(New PropertyChangedEventArgs(propertyName))
End Sub

Protected Overridable Sub OnPropertyChanged(e As PropertyChangedEventArgs)
    RaiseEvent PropertyChanged(Me, e)
End Sub

End Class

然后在我的 xaml 我有:

<DataGrid ItemsSource="{Binding Pl}" x:Name="PlGridTable" AutoGenerateColumns="False">
                        <DataGrid.Columns>

                            <materialDesign:MaterialDataGridTextColumn Header="Desig" Width="Auto" Binding="{Binding _reg, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}"/>

                        </DataGrid.Columns>
                    </DataGrid>

当我第一次加载它时,它命中了 reg 属性 东西,并正确分配了值,但是当我使用 material 设计包中内置的编辑元素更新值时,它不会在任何地方开火。任何关于原因的帮助将不胜感激。

{Binding _reg} 应该是 {Binding Reg} 因为 属性 被命名为 Reg:

<materialDesign:MaterialDataGridTextColumn Header="Desig" Width="Auto" Binding="{Binding Reg, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}"/>