Я новичок в MVVM и пытаюсь ввести строку в текстовое поле, и она возвращается в текстовом блоке на другой странице.
В моей папке Views у меня есть код в xaml, который представляет собой текстовое поле, в которое я хочу ввести:
<TextBox x:Name="date" Text="{Binding Date}" Grid.Row="0" TextAlignment="Right" TextWrapping="Wrap" Margin="0 10 0 1" Padding="1" />
Это другая страница wpf с текстовым блоком, и я хочу, чтобы то, что было напечатано в текстовом поле, появилось здесь:
<TextBlock Grid.Row="0" TextAlignment="Right" TextWrapping="Wrap" Margin="0 0 0 2" Padding="1" Text="{Binding Date}" />
В моей папке Model у меня есть класс Data Entry, который выглядит следующим образом:
public class DataEntry
{
public string Date { get; set; }
}
В моей папке ViewModels у меня есть:
namespace FumeHood1._0._0.ViewModels
{
public class MainViewModel : INotifyPropertyChanged
{
public DataEntry DataEntry { get; set; }
private string date;
public string Date
{
get { return date; }
set
{
date = value;
OnPropertyChanged(nameof(Date));
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Я искал везде и не могу найти правильный способ сделать это. Если бы кто-то мог помочь, это было бы удивительно. Просто пытаюсь заставить этот шаблон MVVM работать и иметь больше смысла для меня.