'Why is my data binding not working? (WPF/vb.net)

I want to bind each property of my class "Artikelstammdaten" to a textbox, but my textbox stays empty. This is what the class looks like:

Public Class Artikelstammdaten

Private _Artikel As String
Private _BezeichnungDE As String
Private _BezeichnungEN As String
Private _Einheit As String
Private _MatGrp As String
Private _Kostenart As Integer
Private _Vertriebstext_DE As String
Private _Vertriebstext_EN As String
Private _Stuecklistennummer As String
Private _Status As String
Private _Klasse As String
Private _Mantelflaeche As Double
Private _Gewicht As Double
Private _KlasseID As String
Private _Stueckliste As IList(Of Stueckliste)
Private _Arbeitsgaenge As IList(Of Arbeitsgaenge)

Public Property Artikel As String
    Get
        Return _Artikel
    End Get
    Set
        _Artikel = Value
    End Set
End Property

Public Property BezeichnungDE As String
    Get
        Return _BezeichnungDE
    End Get
    Set
        _BezeichnungDE = Value
    End Set
End Property

Public Property BezeichnungEN As String
    Get
        Return _BezeichnungEN
    End Get
    Set
        _BezeichnungEN = Value
    End Set
End Property

Public Property Einheit As String
    Get
        Return _Einheit
    End Get
    Set
        _Einheit = Value
    End Set
End Property

Public Property MatGrp As String
    Get
        Return _MatGrp
    End Get
    Set
        _MatGrp = Value
    End Set
End Property

Public Property Kostenart As Integer
    Get
        Return _Kostenart
    End Get
    Set
        _Kostenart = Value
    End Set
End Property

Public Property Vertriebstext_DE As String
    Get
        Return _Vertriebstext_DE
    End Get
    Set
        _Vertriebstext_DE = Value
    End Set
End Property

Public Property Vertriebstext_EN As String
    Get
        Return _Vertriebstext_EN
    End Get
    Set
        _Vertriebstext_EN = Value
    End Set
End Property

Public Property Stuecklistennummer As String
    Get
        Return _Stuecklistennummer
    End Get
    Set
        _Stuecklistennummer = Value
    End Set
End Property

Public Property Status As String
    Get
        Return _Status
    End Get
    Set
        _Status = Value
    End Set
End Property

Public Property Klasse As String
    Get
        Return _Klasse
    End Get
    Set
        _Klasse = Value
    End Set
End Property

Public Property Mantelflaeche As Double
    Get
        Return _Mantelflaeche
    End Get
    Set
        _Mantelflaeche = Value
    End Set
End Property

Public Property Gewicht As Double
    Get
        Return _Gewicht
    End Get
    Set
        _Gewicht = Value
    End Set
End Property

Public Property KlasseID As String
    Get
        Return _KlasseID
    End Get
    Set
        _KlasseID = Value
    End Set
End Property

Public Property Stueckliste As IList(Of Stueckliste)
    Get
        Return _Stueckliste
    End Get
    Set
        _Stueckliste = Value
    End Set
End Property

Public Property Arbeitsgaenge As IList(Of Arbeitsgaenge)
    Get
        Return _Arbeitsgaenge
    End Get
    Set
        _Arbeitsgaenge = Value
    End Set
End Property
End Class

I'm using a ViewModel where i implement the INotifyChanged Interface:

Public Class ArtikelstammdatenViewModel
Implements INotifyPropertyChanged

Private _ArtikelstammdatenList As List(Of Artikelstammdaten)
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged

Public Property ArtikelstammdatenList As List(Of Artikelstammdaten)
    Get
        Return _ArtikelstammdatenList
    End Get
    Set
        _ArtikelstammdatenList = Value
        NotifyPropertyChanged("ArtikelstammdatenList")
    End Set
End Property

Private Sub NotifyPropertyChanged(ByVal info As String)
    RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
End Sub



End Class

I'm initializing an object in the MainWindow and fill it with data, which should bind to "EditArtikelstammdaten.xaml"

 Dim asd As New Artikelstammdaten
    With asd
        .Artikel = "VAUBEF0010"
        .BezeichnungDE = "Sammelbandantrieb"
        .BezeichnungEN = "Collection Belt Drive N50"
        .Einheit = "STK"
        .MatGrp = "VAU"
        .Kostenart = 1500
        .Vertriebstext_DE = "Antrieb Umlenkungen"
        .Vertriebstext_EN = "Drive, Deflections"
        .Stuecklistennummer = "VAUBEF0010"
        .Status = "F"
        .Klasse = "VTPIMV"
        .Mantelflaeche = 1.3
        .Gewicht = 120
        .KlasseID = "1.2.6.5"

    End With

I used "Artikelstammdaten" as DataContext and finally bind each Property to the text Properites.

 <Window.DataContext>
    <local:Artikelstammdaten></local:Artikelstammdaten>
</Window.DataContext>

 <TextBox x:Name="txtItem"
             Text="{Binding Artikel}"
             Grid.Column="2"
             Grid.Row="1"
             Margin="0, 5, 0, 8"
             FontSize="13"
             ></TextBox>

What am i missing or doing wrong? Thank you for your time!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source