'MVVM Bindings doesnt update with PropertyChanged
All my bindings are not updated and I don't understand why
My Model is:
Public Class TestModel
Implements INotifyPropertyChanged
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Private Sub NotifyProperyChange(ByVal Info As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(Info))
End Sub
Private m_vorname As String
Public Property vorname() As String
Get
Return m_vorname
End Get
Set(ByVal value As String)
If m_vorname <> value Then
m_vorname = value
NotifyProperyChange("vorname")
MessageBox.Show("Vorname wurde zu:" + m_vorname)
End If
End Set
End Property
Public Sub wertverandern()
vorname = "Lukas"
End Sub
End Class
My View is the MainView with this settings:
Imports System.ComponentModel
Class MainWindow
Private WithEvents m_Person As New TestModel
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.DataContext = New TestModel()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub btn_Test_Click(sender As Object, e As RoutedEventArgs) Handles btn_Test.Click
m_Person.vorname = "MOINSEN"
End Sub
Private Sub m_Person_PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Handles m_Person.PropertyChanged
MessageBox.Show("Ausgeloest:" + m_Person.vorname, e.PropertyName)
End Sub
Private Sub gelicked(sender As Object, e As RoutedEventArgs) Handles btn_XXX.Click
m_Person.wertverandern()
End Sub
End Class
My XAML look like this:
<Grid>
<StackPanel Orientation="Horizontal">
<Button Name="btn_Test" Height="100" Width="100" VerticalAlignment="Center" HorizontalAlignment="Center" Content="1"/>
<Button Name="btn_XXX" Height="100" Width="100" VerticalAlignment="Center" HorizontalAlignment="Center" Content="{Binding vorname}" Margin="20"/>
<Label VerticalAlignment="Top" Background="Red" Width="100" Height="40" Foreground="Black" Content="{Binding vorname, FallbackValue=GEHT_NICHT, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</Grid>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|