почему <ObservableProperty> и <RelayCommand> не работают?
Мой проект находится в .NET 6. Почему следующий код не работает?
Насколько я понимаю, код создается с помощью атрибутов, что упрощает кодирование.
Я сделал что-то не так?Xaml:
<Window.DataContext>
<self:MainWindowVM />
</Window.DataContext>
<StackPanel >
<Label Content="{Binding Path=FirstLabel ,Mode=TwoWay ,UpdateSourceTrigger=PropertyChanged }" Height="50" />
<Button Command="{Binding Path=ExitMe}" Content="Exit" />
</StackPanel>
Кодирование:
Imports CommunityToolkit.Mvvm.ComponentModel
Imports CommunityToolkit.Mvvm.Input
Class MainWindow
End Class
Partial Public Class MainWindowVM
Inherits ObservableObject
Public Sub New()
Me.FirstLabel = "default value..."
End Sub
<ObservableProperty>
Private FirstLabel As String
<RelayCommand>
Private Sub ExitMe()
Windows.Application.Current.Shutdown()
End Sub
End Class
Во время выполнения я получаю два сообщения об ошибках:
Свойство ExitMe не найдено в объекте MainWindowVM.
Ошибка пути BindingExpression: свойство «FirstLabel» не найдено в «объекте» «MainWindowVM»
Я знаю, что следующий код будет работать. Но почему приведенный выше код не работает?
Imports CommunityToolkit.Mvvm.ComponentModel
Imports CommunityToolkit.Mvvm.Input
Class MainWindow
End Class
Partial Public Class MainWindowVM
Inherits ObservableObject
Public Sub New()
Me.FirstLabel = "default value..."
Me.ExitMe = New RelayCommand(AddressOf exMe)
End Sub
<ObservableProperty>
Private fLabel As String
Public Property FirstLabel As String
Private Sub Save()
Me.fLabel = FirstLabel
End Sub
<RelayCommand>
Private Sub exMe()
Windows.Application.Current.Shutdown()
End Sub
Public ReadOnly Property ExitMe As ICommand
End Class